Bonjours Tout le monde.
bon je débute dans les socket, donc j'ai une application client server qui fait que passer des données.
bon voici mon code server :
dès que je lance mon application ça se bloc et tout les contrôles dessus sont inopérantes, et je pense que c'est la fonction ServerListining() qui fait ce blocage vus que la boucle while tourne sans arrêt pour recevoir mes données, et c'est de même pour le coté Client de 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46 public class _socket { public StreamReader serverStreamReader, clientStreamReader; public StreamWriter serverStreamWriter, clientStreamWriter; public _socket() { startserver(); /// initialisation du server ServerListining(); /// écoute } ///////////////////// SERVER ////////////////// public void startserver() { TcpListener tcpServerListener = new TcpListener(300); tcpServerListener.Start(); MessageBox.Show("server started"); Socket serverSocket = tcpServerListener.AcceptSocket(); try { if (serverSocket.Connected) { MessageBox.Show("client connected"); NetworkStream serverSockStream = new NetworkStream(serverSocket); serverStreamWriter = new StreamWriter(serverSockStream); serverStreamReader = new StreamReader(serverSockStream); } } catch (Exception e) { MessageBox.Show(e.StackTrace); } } //////////////////////////////// listining SERVER public void ServerListining() { while (true) { MessageBox.Show(serverStreamReader.ReadLine()); serverStreamWriter.WriteLine("hello from server"); serverStreamWriter.Flush(); } }
Alors comment faire pour laisser ma boucle while tourner sans bloquer mon application ?
Merci d'avance.
Partager