Как правильно завершить поток сервера? - C#

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. {
  2. Listener = new TcpListener(Settings.ip, Settings.port); // Создаем "слушателя" для указанного порта
  3. Listener.Start(); // Запускаем его
  4. Settings.state = "Включен";
  5. // В бесконечном цикле
  6. while (true)
  7. {
  8. // Принимаем нового клиента
  9. TcpClient Client = Listener.AcceptTcpClient();
  10. // Создаем поток
  11. Thread Thread = new Thread(new ParameterizedThreadStart(ClientThread));
  12. // И запускаем этот поток, передавая ему принятого клиента
  13. Thread.Start(Client);
  14. }
Подскажите, как мне завершить 1 поток сервера и все потоки клиентов?

Решение задачи: «Как правильно завершить поток сервера?»

textual
Листинг программы
  1. static TcpListener listener =  new TcpListener(IPAddress.Parse("127.0.0.1"), 8005);
  2.         void start(int a)
  3.         {
  4.             Thread clientThread = new Thread(new ThreadStart(startS));
  5.             if (a == 1)
  6.             {
  7.                 clientThread.Start();
  8.             }
  9.             else
  10.             {
  11.                 clientThread.Abort();
  12.                 listener.Stop();
  13.             }
  14.         }
  15.         void startS()
  16.         {
  17.             try
  18.             {
  19.                 listener.Start();
  20.                 //listBox1.Items.Add("Ожидание подключений...");
  21.                 while (true)
  22.                 {
  23.                     TcpClient client = listener.AcceptTcpClient();
  24.                     ClientObject clientObject = new ClientObject(client);
  25.                     Thread clientThread = new Thread(new ThreadStart(clientObject.Process));
  26.                     clientThread.Start();
  27.                 }
  28.             }
  29.             catch //(Exception ex)
  30.             {
  31.                 //listBox1.Items.Add(ex.Message);
  32.             }
  33.             finally
  34.             {
  35.                 if (listener != null)
  36.                     listener.Stop();
  37.             }
  38.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут