Как правильно завершить поток сервера? - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д