c# - 获取连接到远程服务器端口的所有客户端
问题描述
我想获取连接到服务器端口(即端口 80)的所有客户端。
如果我使用以下方式连接到远程端口:
IPEndPoint endPoint = new IPEndPoint(ip, port);
Socket tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
tcpSocket.Connect(endPoint);
我将当前客户端的 IP 地址作为 LocalEndPoint。如何获取连接到远程计算机上此端口的所有客户端的 IP 地址(或至少连接客户端的数量)?我不想调用远程系统。
谢谢你的帮助。
哈拉尔
解决方案
你不能。这就是套接字的工作方式和安全性。在服务器和客户端之间建立连接后,您将无法获取有关其他客户端的信息。
您可以更改远程服务器代码并更改协议以添加对您的请求的处理,以便服务器将返回已连接客户端的数量。但这需要您在协议中支持它并更改 TCP 服务器实现。由于连接半关闭、超时等,该部分可能很棘手(计算连接客户端的数量)。