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