"TcpListener", bloquage lors de la lecture de mes sockets
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 :
Code:
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();
}
} |
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.
Alors comment faire pour laisser ma boucle while tourner sans bloquer mon application ?
Merci d'avance.