我想知道是否使用 Socket.Connected 来确定套接字是否仍然连接会破坏 SslStream。
问问题
747 次
2 回答
2
Socket.IsBound
不检查是否Socket
已连接。它检查 aSocket
是否绑定到本地端口号。所以不行。你可能在其他地方做错了什么。
支持文件
检查 Socket 是否已连接使用Socket.Connected
于 2012-10-15T23:43:31.550 回答
0
不,它不应该,因为它实际上并没有对套接字做任何事情。您是否想弄清楚另一端的服务器是否仍然存在?如果是这样,您可能需要设置某种类型的 ping,因为此属性不会告诉您连接是否意外中断(例如程序崩溃、网络中断等)。
来自 MSDN:
Connected 属性获取 Socket 在最后一次 I/O 操作时的连接状态。当它返回 false 时,Socket 要么从未连接,要么不再连接。
Connected 属性的值反映了最近一次操作时的连接状态。如果您需要确定连接的当前状态,请进行非阻塞、零字节的发送调用。如果调用成功返回或抛出 WAEWOULDBLOCK 错误代码(10035),则套接字仍处于连接状态;否则,套接字不再连接。
如果在用户数据报协议 (UDP) 套接字上调用 Connect,则 Connected 属性始终返回 true;但是,此操作不会改变 UDP 固有的无连接性质。
于 2012-10-16T02:21:24.107 回答