каждый.
У меня есть проблема, и я надеюсь, что кто-то может помочь мне выполнить эту задачу.
Я создал поток для прослушивания соединений с сокетом, и когда клиент подключается, потокпродолжает слушать, и я хочу, чтобы он прекратил слушать, пока клиент не отключится.
Но я пока не могу понять это.
Вот метод прослушивания:
/// <summary>
/// Listen for clients
/// </summary>
private void Listen()
{
Listener = new TcpListener(EndPoint);
Listener.Start();
TcpClient client;
debugmsg("begin listening");
ChangeState("Listening...");
while (listen)
{
if (!Listener.Pending())
{
debugmsg("Listener free");
Thread.Sleep(500);
continue;
}
try
{
// blocks until a client connects
cliente = Listener.AcceptTcpClient();
OnConnect(new CustomEventArgs("Client connected!"));
ChangeState("Connected to " + cliente.Client.RemoteEndPoint.ToString());
comunicate = true;
try
{
TotalSent= 0;
// when a client connects, start a thread to comunicate
ThreadComunicate= new Thread(new ParameterizedThreadStart(Comunicar));
ThreadComunicate.Name = "ComunicateThread";
ThreadComunicate.Start(client);
}
catch (Exception e)
{
debugmsg("ERROR: " + e.Message);
}
}
catch (ThreadAbortException e)
{
debugmsg("ABORTED!" + e.Message);
Listener.Stop();
}
}
debugmsg("end of listening");
Listener.Stop();
}
Кто-нибудь?
Спасибо.