我一直在C#中的插座客户端程序工作,并且想知道如何检测插座的另一端何时脱离了自己的"毫无疑问",就像网络电缆被插入的网络电缆或硬重置一样. 我在下面具有这些功能以访问插座,并且根据SO问题在这里和此 msdn文章,检查断开连接套接字的最佳方法是发送1个字节消息,长度为0.如果抛出异常并且WSAEWOULDBLOCK不是错误代码,则插座断开.我已经尝试过此操作,但是在硬重置服务器连接后,客户端将调用Send(new byte[1], 0, 0, SocketFlags.None)并成功返回,然后立即返回Receive()命令,返回WSAEWOULDBLOCK错误. 什么给了?? 这是我下面的代码. _socket设置为非阻滞模式: private int nonBlockRecv(byte[] recvBytes, int offset, int size, SocketFlags sf) { int bytesRecv = 0; while (t
问答分类:
其他开发 浏览量:10 发布日期:2023-09-06