Как правильно завершить поток сервера? - C#
Формулировка задачи:
{ Listener = new TcpListener(Settings.ip, Settings.port); // Создаем "слушателя" для указанного порта Listener.Start(); // Запускаем его Settings.state = "Включен"; // В бесконечном цикле while (true) { // Принимаем нового клиента TcpClient Client = Listener.AcceptTcpClient(); // Создаем поток Thread Thread = new Thread(new ParameterizedThreadStart(ClientThread)); // И запускаем этот поток, передавая ему принятого клиента Thread.Start(Client); }
Решение задачи: «Как правильно завершить поток сервера?»
textual
Листинг программы
static TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8005); void start(int a) { Thread clientThread = new Thread(new ThreadStart(startS)); if (a == 1) { clientThread.Start(); } else { clientThread.Abort(); listener.Stop(); } } void startS() { try { listener.Start(); //listBox1.Items.Add("Ожидание подключений..."); while (true) { TcpClient client = listener.AcceptTcpClient(); ClientObject clientObject = new ClientObject(client); Thread clientThread = new Thread(new ThreadStart(clientObject.Process)); clientThread.Start(); } } catch //(Exception ex) { //listBox1.Items.Add(ex.Message); } finally { if (listener != null) listener.Stop(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д