发布时间:2013-05-11 01:52:22
方法一(使用alarm定时): connect 设置超时 内核connect超时通常为75秒,我们可以设置更小的时间如10秒来提前从connect中返回 这里用使用信号处理机制,调用alarm,超时后产生SIGALRM信号 (也可使用select实现) Sigfunc * sigfunc ; sigfunc=signal(SIGALRM, connect_alarm); //.........【阅读全文】
发布时间:2013-05-11 01:31:05
目前各平台通用的设置套接字(Socket)连接超时的办法是:创建套接字,将其设置成非阻塞状态。调用connect连接对端主机,如果失败,判断当时的errno是否为EINPROGRESS,也就是说是不是连接正在进行中,如果是,转到步骤3,如果不是,返回错误。用select在指定的超时时间内监听套接字的写就绪事件,如果.........【阅读全文】
发布时间:2013-05-07 07:10:57
标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示:C语言.........【阅读全文】
发布时间:2013-05-05 13:39:02
原文地址:同一个socket是否可以bind多个端口? 作者:瀚海书香版权所有,转载请注明出处。Author: Tony <tingw.liu#gmail.com>今天一个可爱的同事问我同一个socket能否bind多个port?说实话,真没这么玩过。本着严谨的态度,决定研究一下这样是否可以。说明本内容针对的内核版本是SLES 11 SP2 3.0.13-0.27首先分.........【阅读全文】
发布时间:2013-05-05 13:38:16
TCP/IP 协议栈中定义了MSS, 为的是提高网络的性能,因为如果让IP层分包的话,丢包后的重发没法控制,需要重传整个TCP包(浪费了网络资源) MSS就是这个协商的结果,不能人为修改,这个MSS的大小是MTU减去TCP头,从TCPDUMP结果中我们可以看到我们的TCP协商的MSS都在1.3~1.4K 所以一定需要我们自己来重.........【阅读全文】