Bonjour,
Je rappelle que je fais une connexion multiclients TCP/IP sous Visual Studio
Apres moulte et moulte test j'ai trouvé que mon probleme, lorsque je me deconnectais de mon serveur, est .Read() qui est bloquant c'est pourquoi je fais un .BeginRead() mais je ne reçoit rien enfin mon buffer est toujours null...

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
33
34
private void btn_connexion_Click(object sender, EventArgs e)
        {
            byte[] read_buffer = new Byte[nb_byte_buffer]; //la longueur du message est de 256 octets max  
            String message_recu = String.Empty;//message vide au debut
            try
            {
                ClientTCP = new TcpClient(serveur, port);
                flux = ClientTCP.GetStream();
                btn_connexion.Enabled = false;
 
                IAsyncResult iaReturn = flux.BeginRead(read_buffer, 0, read_buffer.Length, SocketIncomingMsg, flux);
                //iaReturn.AsyncWaitHandle.WaitOne();
            }
            catch (ArgumentNullException ex)
            {
                // Code exécuté en cas d'exception 
                MessageBox.Show(ex.ToString());
                MessageBox.Show("le serveur doit etre deconnecté");
            }
        }
 
        private void SocketIncomingMsg(IAsyncResult ar)
        {
            byte[] read_buffer = new Byte[nb_byte_buffer];
            try
            {
                int byte_recu = flux.EndRead(ar);
                flux.BeginRead(read_buffer, 0, byte_recu, SocketIncomingMsg, flux);                SetTbxReception(System.Text.Encoding.ASCII.GetString(read_buffer,0,read_buffer.Length));
            }
            catch (ArgumentException)
            {
                MessageBox.Show("exception");
            }
        }
Est ce que quelqu'un a une idée?
Moi je pense que c'est parce que je mets que ma reception en Asynchrone alors que je laisse ma connection et mon envoi en synchrone...

Merci