select函数可以用来监听多个socket连接。但是单纯select不能检检测连接断开的情况。可以配合recv函数来检测远程主机主动断开的情况。
远程主机断开后,select会立即返回(返回值大于0!不能用来判断断开的情况),这时调用recv函数返回的长度为0,这种情况就能判断主动断开了。
参照:http://bbs.csdn.net/topics/80103159 ,远程主机主动断开,select监视的socket马上会进入可读状态,然后会读到EOF(文件结束符)
如果是网线被拔(远程或是本地),只能通过超时判断了。

本文介绍了如何利用select函数结合recv函数来检测socket连接是否被远程主机主动断开的方法,并探讨了在网络连接异常情况下的处理策略。

494

被折叠的 条评论
为什么被折叠?



