Bonjour, je commence à peine a toucher au socket en VB.NET et j'ai deja un soucis lors de la reception de donné sur mon client...
J'aimerais savoir pourquoi mon programme "bloque", c'est a dire qu'il freeze sans rien qu'il ne se passe :

Je me connecte au serveur, en envoyant un tableau de byte. Le serveur me repond, mais mon client ne me l'affiche pas :

La connexion : c'est OK
l'envoie du tableau : c'est OK
La reception & affiche : PAS OK

Je suppose que le problème se situe au niveau de la boucle. Ayant déjà programmé en JAVA du socket, je vois que ça fonctionne différemment en VB.Net
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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
 
 
        Try
            MonSocketClient.Connect(MonEP)
        Catch ex As Exception
            MsgBox("Impossible de se connecter !!!")
        End Try
 
        Log.Text = Log.Text + vbCrLf + "Connecté !" + vbCrLf
        PaquetEnvoye(0) = 2
        PaquetEnvoye(1) = &HD9
        PaquetEnvoye(2) = 1
        PaquetEnvoye(3) = 1
 
 
        MonSocketClient.Send(PaquetEnvoye)
        Log.Text = Log.Text + "Paquet Envoyer : " + lireTab(PaquetEnvoye) + vbCrLf
 
        While MonSocketClient.Connected
            MonSocketClient.Receive(PaquetRecu)
 
            Log.Text = Log.Text + "Paquet reçu : " + lireTab(PaquetRecu) + vbCrLf
        End While


Alors qu'en enlevant la boucle et en répétant 5 fois ma ligne de code, j'arrive à recevoir mes 5 PAQUETS envoyé du serveur et donc à afficher son contenu dans ma Textbox, en lisant le PaquetRecu

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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
 
 
        Try
            MonSocketClient.Connect(MonEP)
        Catch ex As Exception
            MsgBox("Impossible de se connecter !!!")
        End Try
 
        Log.Text = Log.Text + vbCrLf + "Connecté !" + vbCrLf
        PaquetEnvoye(0) = 2
        PaquetEnvoye(1) = &HD9
        PaquetEnvoye(2) = 1
        PaquetEnvoye(3) = 1
 
 
        MonSocketClient.Send(PaquetEnvoye)
        Log.Text = Log.Text + "Paquet Envoyer : " + lireTab(PaquetEnvoye) + vbCrLf
 
 
            MonSocketClient.Receive(PaquetRecu)
            Log.Text = Log.Text + "Paquet reçu : " + lireTab(PaquetRecu) + vbCrLf
 
            MonSocketClient.Receive(PaquetRecu)
            Log.Text = Log.Text + "Paquet reçu : " + lireTab(PaquetRecu) + vbCrLf
 
            MonSocketClient.Receive(PaquetRecu)
            Log.Text = Log.Text + "Paquet reçu : " + lireTab(PaquetRecu) + vbCrLf
 
            MonSocketClient.Receive(PaquetRecu)
            Log.Text = Log.Text + "Paquet reçu : " + lireTab(PaquetRecu) + vbCrLf
        e
J'ai peut-etre une idée, de creer un thread qui lance la boucle while ?
Merci de votre aide les boys !