Задать вопрос
@algotrader2013

Как корректно обрабатывать закрытие TcpListener при остановке приложения?

Добрый день

У меня крутится приложение, которое постоянно аксептит клиентов на TcpListener'e. При отладке я часто останавливаю его нажатием кнопки стоп в Visual Studio. При этом убиваются все потоки приложения, но порт остается занятым и netstat -aon показывает, что он занят несуществующим процессом (процесса с таким Id нет в диспетчере задач). Для освобождения порта приходится перезагружать компьютер. Подскажите, как корректно обработать такую остановку приложения.
  • Вопрос задан
  • 558 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
listener.Start();
while(running) {
      TcpClient client = listener.AcceptTcpClient();
      // обработка запроса клиента...............
      client.Close();
}
listener.Stop();

Вынесите временно отладку логики обработки запроса клиента в отдельный поток, а сам сервер запустите и не трогайте...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы