因此,在调试我的应用程序时,我遇到了一个奇怪的问题,即使连接了套接字,Socket Connected属性也会返回false。 任何对send的调用都可以正常工作,并且在发生这种情况时,有一个线程正在执行接收而没有任何错误。
在MS doc中,他们指出
Connected属性获取自上一次I / O操作起Socket的连接状态。当它返回false时,则说明该套接字未连接或不再连接。
但是然后
Connected属性的值反映了最新操作以来的连接状态。如果需要确定连接的当前状态,请进行无阻塞,零字节的Send调用。如果调用成功返回或抛出WAEWOULDBLOCK错误代码(10035),则套接字仍处于连接状态;否则,套接字将不再连接。
即使这样,所有的最后一个操作也必须成功完成,因此该属性应等于true。 那我该怎么办呢?仅检查Connected属性还不够?