首页 > 解决方案 > 获取连接到远程服务器端口的所有客户端

问题描述

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

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

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

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

谢谢你的帮助。

哈拉尔

标签: c#sockets

解决方案


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

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


推荐阅读