0

我想知道是否使用 Socket.Connected 来确定套接字是否仍然连接会破坏 SslStream。

4

2 回答 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 回答