摘要: 问题背景:TCP不能及时通知连接中断,如果使用keep-live机制默认时间是2小时11分钟15秒没有通讯才会发送探测消息,如依靠TCP超时机制可能要等待9分钟才能检测出网络中断,因此必须用户自己检测连接是否正常。连接中断可能的原因:1)一方主机崩溃 发不出FIN,对等方依靠重发检测链路中断,如果崩... 阅读全文
posted @ 2014-07-03 15:04 HAPPY_PM 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 在服务器崩溃后重启的时候,因为之前的连接都无效了,所以服务器端会发送一个RST响应,此时客户端产生ECONNRESET错误!这就需要你在客户端重新连接了! 阅读全文
posted @ 2014-07-03 14:18 HAPPY_PM 阅读(2435) 评论(0) 推荐(0) 编辑
摘要: 因为TCP需要知道在连接建立期间的缓冲区大小,所以必须在服务端调用listen之前,客户端调用connect之前进行设置。客户端:setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char*)&sndbufsz,sizeof(sndbufsz))connect.....服务端:s... 阅读全文
posted @ 2014-07-03 12:53 HAPPY_PM 阅读(1763) 评论(0) 推荐(0) 编辑
摘要: TCP读取定长数据接口的编写:int readn(int fd,char*bp,size_t len){ int cnt; int rc; cnt=len; while(cnt>0) { rc=recv(fd,bp,cnt,0); if(rclen) { //disc... 阅读全文
posted @ 2014-07-03 11:51 HAPPY_PM 阅读(1603) 评论(0) 推荐(0) 编辑