linux网络编程
gsdfas
这个作者很懒,什么都没留下…
展开
-
linux网络编程:Broken pipe
在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。 当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。根据信号的默认处理规则SIGPI原创 2012-06-26 20:31:06 · 1107 阅读 · 0 评论 -
setsockopt参数之SO_REUSEADDR
http://www.cnblogs.com/mydomain/archive/2011/08/23/2150567.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ http://www.sudu.cn/info/html/edu/20050101/296180.html 网友vmstat多次提出了这个问题:SO_REUSEADDR有什转载 2012-09-27 10:12:01 · 845 阅读 · 0 评论 -
组播
组播需要的网络环境 如果主机想获得多播报文,相邻的路由器也必须支持IGMP,如果想获得Internet上的多播报文,主机到Server的这个路径中所遇到的路由器必须全部支持IGMP,路由器还必须支持源发现协议,如MSDP,PIM_DM,PIM_SM等。 组播的等级 Level 0 不支持IP多播 Level 1 只支持向多播组发送数据而不能接收多播组的数据 Level 2原创 2012-09-27 10:40:11 · 818 阅读 · 0 评论 -
Linux socket connect
客户端调用int connect(int sockfd, const struct sockaddr *addr, socklen_t len)发起对服务器的socket的连接请求: 如果客户端socket描述符为阻塞模式则会一直阻塞到连接建立或者连接失败(注意阻塞模式的超时时间可能为75秒到几分钟之间); 而如果为非阻塞模式,则调用connect之后如果连接不能马上建立则返回原创 2013-01-06 19:47:41 · 562 阅读 · 0 评论 -
关于SIGPIPE导致的程序退出
http://www.cppblog.com/elva/archive/2008/09/10/61544.html -------------------------- linux下当连接断开,还发数据的时候,不仅send()的返回值会有反映,而且还会像系统发送一个异常消息,如果不作处理,系统会出BrokePipe,程序会退出。为此,send()函数的最后一个参数可以设MSG_NOSIGNAL转载 2013-01-15 09:43:55 · 389 阅读 · 0 评论