TcpListener 如何获取连接的客户端

本文关键字:连接 客户端 获取 何获取 TcpListener | 更新日期: 2023-09-27 18:32:37

我有一个连接到多个客户端的TcpListener。我可以获取所有已连接客户端的列表吗?

TcpListener 如何获取连接的客户端

当您接受服务器上的连接时,可以将客户端放在列表中。

TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);
// Start listening for client requests.
server.Start();
List<TcpClient> listConnectedClients =  new List<TcpClient>();
while(true)
{
    TcpClient client = server.AcceptTcpClient();
    listConnectedClients.Add(client);
}

我认为最好的方法是在打开连接时将客户端添加到列表中:

public TcpClient connectedClients = new list<TcpClient>();
public void ConnectClient(int ip, int port)
{
    tcp.Connect(ip, port);
    connectedClients.Add(tcp);
}

如果断开其中一个客户端的连接:

public void DisconnectClient(int ip, int port)
{
    tcp.Close();
    connectedClients.RemoveRange(0, connectedClients.Length)
}

因为当您关闭 TcpClient 时,所有连接都已断开连接,因此您不妨清除列表。

希望这有帮助。