摘要:
引用自:http://blog.csdn.net/cccallen/article/details/6619994连接套接字,阻塞的套接字超时时间很长无法接受,而是用非阻塞套接字时使用的方案也有多种。后者是个比较好的方法方案1:不断重试,直到连接上或者超时:[cpp] view plaincopyintconnect_socket_timeout(intsockfd,char*dest_host,intport,inttimeout){ structsockaddr_inaddress; structin_addrinaddr; structhostent*host; interr,n... 阅读全文
摘要:
成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。示例8-2-1 中,函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)被Derived::g(void)覆 阅读全文
摘要:
引用自:http://www.cnblogs.com/qlee/archive/2011/07/12/2104089.html注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中 阅读全文
摘要:
引用自:http://blog.csdn.net/cccallen/article/details/8003324应用层对于每个socket采用如下函数来开启 keepalive机制,其参数将采用系统上述配置。setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive));注意:keepalive是一个TCP协议包,并不是应用层数据包,意即通过recv等函数从应用层上是无法获得该协议包。可通过抓包工具来看。=========================================== 阅读全文