用setsockopt()来控制recv()与send()的超时

用setsockopt()来控制recv()与send()的超时
在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的: int nNetTimeout=1000;//1秒, //设置发送超时 setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&nNetTimeout,sizeof(int)); //设置接收超时 setsockopt(socket,SOL_SOCKET,...

Xshell传输文件(使用sz与rz命令)

Xshell传输文件(使用sz与rz命令)
借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。 如果没有安装,需要执行:[cpp]yum install lrzsz[/cpp] 其中,对于sz和rz的理解与记忆我用了如下的方法(很多时候容易搞混): sz中的s意为send(发送),告诉客户端,我(服务器)要发送文件 send to cilent,就等同于客户端在下载。 rz中的r意为received(接收),告诉客户端,我(服务器...

Linux目录结构

Linux目录结构
初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。 home --- 存储普通用户的个人文件 ftp --- 用户所有服务 httpd samba user1 user2 bin --- 系统启动时需要的执行文件(二进制) sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行 proc --- 虚拟,存在linux内核镜像;保存所有内核参数以及系统...

CentOS mini 默认无法上网和配置IP

CentOS mini 默认无法上网和配置IP
CentOS  mini默认是无法上网,需要进行如下设置: 一、编辑网络设置: 修改ONBOOT值为yes [cpp]DEVICE=eth0 HWADDR=00:0C:29:4E:B7:C9 TYPE=Ethernet UUID=a3d55d06-78fe-4542-a44a-d95cb5667cd6 ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=dhcp[/cpp] 二、重启network服务 service network restart 手动配置IP: vi  /etc/sysconfig/network-scripts/ifcfg-ethx linux-ip  

expected specifier-qualifier-list before sth[错误]

expected specifier-qualifier-list before sth[错误]
TIPS:gnu下遇见的一个错误,查了查出问题的原因原来是结构体,需加上Struct! 在使用GCC时经常会遇到expected specifier-qualifier-list before sth之类的错误。specifiers是指void、char、struct Foo等词汇;qualifiers是指像const和volatile一类的关键字。一个词汇再未定义之前就使用就会出项这种错误,可以通过typedef进行定义以后再使用。 错误实例: expected specifier-qualifier-list before sth ...

exit()与_exit()

exit()与_exit()
exit和_exit函数都是用来终止进程的。当程序执行到exit或_exit时,系统无条件的停止剩下所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。但是,这两个函数是有区别的。exit()函数的作用是:直接使用进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构;exit()函数则在这一基础上做了一些包装。在执行退出之前加了若干道工序。exit()函数与_exit()函数最大区别就在于exit(...

非阻塞模式的read和write

非阻塞模式的read和write
我们知道read和write都是阻塞模式下的IO函数,如果没有可以读的,程序就会卡在read上,同样的,想要往fd里面写,如果fd里面是空的也会卡住,结合socket编程,我们很容易理解,对方没数据发过来,就read不出来,如果我没发数据,也就没法write。下面这个程序很好说明这一点。 [cpp] #include<unistd.h> #define SIZE 100 int main(void) { int n; char buf[SIZE]; while(n=read(STDIN_FILENO,buf,SIZE...

exec函数族的使用

exec函数族的使用
调用shell脚本命令:execlp("sh","sh","filename",(char*)0); exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一个新程序,替换原有的进程,因此这个新的被exec执行的进程的PID不会改变,和调用exec函数的进程一样。 int   exec…装入和运行其它程序: int   execl(  char *pathname,char *arg0,char *arg1,...,char *argn,NULL) int   execle( char *...

Linux UDP socket编程(UDP通讯模型)

Linux UDP socket编程(UDP通讯模型)
Linux UDP socket编程(UDP通讯模型): UDPClient + UDPService。 Linux下大多数网络程序都是基于TCP的,很少基于UDP,简单的通讯模型如下,开发时候备用! udpService: [cpp] #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> #include <strings.h> #include <unistd.h&...

Linux各种信号及其用途

Linux各种信号及其用途
附录:Linux各种信号及其用途   Signal Description Signal number on Linux x86[1] SIGABRT Process aborted 6 SIGALRM Signal raised by alarm 14 SIGBUS Bus error: "access to undefined portion of memory object" 7 SIGCHLD Child process terminated, stopped (or continued*) 17 SIGCONT Continue if stopped 18 SIGFPE Floating point exception: "erroneous arithmetic oper...
Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录