J'ai un TcpListener qui est connecté à plusieurs clients. Puis-je avoir une liste de tous les clients connectés?TcpListener Comment obtenir des clients connectés?
Répondre
Vous pouvez placer le client dans une liste lorsque vous acceptez une connexion sur le serveur.
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);
}
Je pense que c'est la seule façon ;-) – code4life
Oui, j'ai vérifié la documentation et je n'ai pas pu trouver une méthode ou une propriété qui donne une liste de connexions acceptées. – frostedcoder
Que faire si l'un des clients est déconnecté? Comment l'enlever de la liste? –
Je pense que la meilleure façon serait d'ajouter que le client à une liste lors de l'ouverture de la connexion:
public TcpClient connectedClients = new list<TcpClient>();
public void ConnectClient(int ip, int port)
{
tcp.Connect(ip, port);
connectedClients.Add(tcp);
}
Si vous débranchez l'un des clients:
public void DisconnectClient(int ip, int port)
{
tcp.Close();
connectedClients.RemoveRange(0, connectedClients.Length)
}
Depuis quand vous fermez un TcpClient toutes les connexions sont déconnectées vous pourriez aussi effacer la liste.
Espérons que cela aide.
Que faire si un des clients est déconnecté? Comment l'enlever de la liste? –
@BewarSalah Juste mis à jour ma réponse. – asdfasdfadsf
@BewareSalah Vous pouvez conserver manuellement 'TcpClient's dans une liste lorsque vous les acceptez. – tchelidze