我正在尝试轮询连接到我的服务器的客户端的连接。
当您使用 poll 时,您需要给它一个套接字连接,但在服务器端,套接字绑定到它自己的 IP 地址和特定端口。让另一个套接字连接到同一端口但使用客户端的 IP 地址是行不通的,因为同一套接字上不能有多个连接。
我只是想知道不断检查客户端是否仍然连接到服务器以及何时断开连接的好方法是什么?
我在想某种超时检查之类的。我只是想知道是否有任何通用或正确的方法可以实现这一目标。
我已经尝试过
Socket.Poll
但似乎没有达到我想要的效果。
重申我的问题,如何检查客户端是否使用 C# 中的 TCP 套接字在服务器端连接?
有两种套接字:用于监听和用于连接。如果客户端已连接,您必须拥有与该连接关联的
Socket
实例。
使用此套接字定期发送数据并接收和确认返回。这是 100% 确保连接仍然打开的唯一方法。
尤其是
Connected
属性不能用于检测丢失的连接,因为如果拔掉网络电缆,双方都不会以任何方式得到通知。从原则上讲,该属性不可能准确。