获取所有连接到远程服务器端口的客户端

时间:2018-12-05 09:09:37

标签: c# sockets

我想获取所有连接到服务器端口(即端口80)的客户端。

如果我使用以下方式连接到远程端口:

IPEndPoint endPoint = new IPEndPoint(ip, port);
Socket tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);  
tcpSocket.Connect(endPoint);  

我将当前客户端的IP地址作为LocalEndPoint获取。如何获取连接到远程计算机上此端口的所有客户端的IP地址(或至少连接客户端的数量)?我不想调用远程系统。

感谢您的帮助。

Harald

1 个答案:

答案 0 :(得分:3)

不能。这就是套接字的工作方式和安全性。服务器与客户端之间建立连接后,就无法获取有关其他客户端的信息。

您可以更改远程服务器代码并更改协议以添加对请求的处理,以便服务器将返回已连接客户端的数量。但这将需要您在协议中支持它并更改TCP服务器实现。由于连接半关闭,超时等原因,该部分可能很棘手(计算连接的客户端数)。