2016-01-30 1 views

Répondre

2

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); 
    } 
+0

Je pense que c'est la seule façon ;-) – code4life

+0

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

+0

Que faire si l'un des clients est déconnecté? Comment l'enlever de la liste? –

1

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.

+0

Que faire si un des clients est déconnecté? Comment l'enlever de la liste? –

+0

@BewarSalah Juste mis à jour ma réponse. – asdfasdfadsf