网络编程
文章平均质量分 62
码农小张
这个作者很懒,什么都没留下…
展开
-
控制connect超时时间(linux版本和Windows版本)
客户端在连接服务器时,可能会出现问题,导致三次握手无法完成,持续重试,表现在客户端程序的行为就是卡在connect调用上无法返回,这样的客户端是非常不友好的。大致的原理就是设置socket为非阻塞,这是connect会马上返回,之后通过select控制超时,并通过FD_ISSET()检测,再通过getsockopt检测SO_ERROR,最后再把socket设置为阻塞模式。之后就可以愉快地通讯了。原创 2015-03-24 00:59:42 · 874 阅读 · 0 评论 -
探讨read的返回值的三种情况
今天探讨一个很看似简单的API “read”的返回值问题。read的返回值有哪几个值?每个值又是在什么情况下发生的?先问一下男人吧:man 2 read RETURN VALUE On success, the number of bytes read is returned (zero indicates end of file), and the file position i转载 2015-09-14 22:12:23 · 16370 阅读 · 0 评论 -
网络编程经典好书推荐
共享一本经典好书,linux和windows全面涉及,由浅及深,从网络编程基础的套接字开始讲起,再到tcp和upd的区别,有边界和无边界,流的特点和数据包的特点,再到io模型,select到epoll,windows下的异步编程,重叠io,IOCP(io完成端口),epoll和IOCP都非常高效,而且都是操作系统相关。最后讲解http协议以及一个简单的web服务器的实现。 0分下载:http://原创 2015-09-17 23:01:15 · 4586 阅读 · 1 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
近来在写服务端的时候纠结服务端要不要主动调用close()关闭socket,后来深入了解tcp断开连接四次握手,心中有点答案了。 下面内容均为转载:昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下: http://blog.csdn.net/shootyou/article/details/6615051 里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的转载 2016-07-25 23:44:02 · 7529 阅读 · 0 评论