socket连接状态的判断

来源:互联网 发布:微信小程序 阿里云oss 编辑:程序博客网 时间:2024/04/28 05:54

    使用非阻塞send 0字节的方法无法判断socket连接。那是msdn上介绍的方法。我的服务程序启动专门线程负责监听端口,并处理新的socket连接数据。我客户端使用shutdown+close断开了,但是服务程序中的socket的connected属性一直为true,send 0字节总是成功,没有异常。如果可以及时判断连接丢失的话,我就可以直接在主线程中接收和发送数据。否则要启动专门的线程来处理新的socket连接,当客户端断开时阻塞式的receive函数会直接返回0,我就可以直接close了。 

    另外有一种poll的方法,看了一下,也是要阻塞的方式才能判断,多个socket需要处理的情况下,不适合单线程来处理。