Bonjour à tous,
J'ai un petit soucis, je suis sûr une appli client serveur pour l'instant mon client c'est telnet avec MSDOS, il reçoit bien les données cependant quand je ferme ma fenêtre j'ai une SocketException qui n'est pas gérée (une connexion a été abandonnée par un logiciel de votre ordinateur hôte), quelqu'un a des suggestions ?
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private void TCP()
        {
                // Définition du TcpListener sur le port 20000.
                Int32 port = 20000;
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
 
                // TcpListener server = new TcpListener(port);
                TcpListener server = new TcpListener(localAddr, port);
 
                // Commencer à écouter les demandes des clients.
                server.Start();
                MessageBox.Show("Connection effectuée !");
 
 
                // Tampon pour la lecture de données
                Byte[] bytes = new Byte[256];
 
                // Entrer dans la boucle d'écoute.
                while (Thread.CurrentThread.IsAlive)
                {
                    TcpClient client = server.AcceptTcpClient();
 
                    // Obtention un objet de flux pour la lecture et l'écriture
                    NetworkStream stream = client.GetStream();
                    ListeClients.Add(client);
 
                    TraitementClient();
 
                    ListeClients.Remove(client);
                    client.Close();
                }
            }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void TraitementClient()
        {
            while (Thread.CurrentThread.IsAlive)
            {
                foreach (TcpClient clientReception in ListeClients)
                {
                    byte[] msg = Encoding.UTF8.GetBytes(valeur);
                    clientReception.Client .Send (msg);
                    Thread.Sleep(700);
                    if (!clientReception.Connected)
                    {
                        ListeClients.Remove(clientReception);
                        clientReception.Close();
                        Thread.CurrentThread.Abort();
                    }
                }
            }
        }
Merci d'avance