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
J'ai peut-etre une idée, de creer un thread qui lance la boucle while ?
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
Merci de votre aide les boys !![]()
Partager