Bonjour.
J'ai un petit programme Visual C# qui me permet d'envoyer deux données distinct à un serveur TCP.
Mon code s'apparente à sa:
Mon problème réside dans le fait que je doit cliquer plusieurs fois sur le bouton d'envoi pour que le serveur les reçoivent. mais j'aimerais envoyer une seul trame. Je ne comprend pas pourquoi la méthode Flush() ne force pas l'envoie immédiat de la trame.
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
35
36
37
38
39
40
41 System.Net.Sockets.TcpClient tcpclient = null; try { /*script de lecture*/ //ip string urlSave = "C:\\SaveIP.txt"; StreamReader smIP = new StreamReader(urlSave); string textIP = smIP.ReadLine(); /*script de'envoi*/ //teste co tcpclient = new TcpClient(textIP, 9999); AfichTime.Text = "Connection Ok"; //récupération des variable des box string EnvoiData1 = mData1.Text; string EnvoiData2 = mData2.Text; try { //trame NetworkStream nstream = tcpclient.GetStream(); StreamWriter sw = new StreamWriter(nstream);//ecrir un flu StreamReader sr = new StreamReader(nstream);//lire un flux sw.Write("Hello! Data1: {0} Data2: {1}", EnvoiData1, EnvoiData2); sw.Flush(); AfichTime.Text = "Envoi!"; } catch { AfichTime.Text = "Erreur envoi!"; } } catch { AfichTime.Text = "Erreur de connexion"; }
Merci de tout coup de pouce.
Partager