Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Закрытие сокета  (Прочитано 8779 раз)
0 Пользователей и 1 Гость смотрят эту тему.
0xdead
Гость
« : 14-12-2005 09:25 » 

Столкнулся с такой ситуацией: в одном из потоков приложения есть открытый синхронный сокет ожидающий подключения. Как мне завершить этот поток?

Код:

Код:
Основной поток:
Инициализация сокета.
socket.Bind(..);
socket.Listen(..);
....

Вспомогательный поток:
Socket socket2 = socket.Accept();

Вспомогательный поток блокируется вызовом Accept. А если никто не подключился и надо прекратить прослушивание сокета, то как это сделать?
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 14-12-2005 11:37 » 

Закрытие сокета в основном потоке не срабатывает?
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
0xdead
Гость
« Ответ #2 : 14-12-2005 12:02 » 

Нет. Ни срабатывает нигде. Даже если закрыть приложение, то в Taskmanager оно висит, убивать надо ручками.
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 14-12-2005 13:21 » 

Очень странно.  Тогда попробуйте статический метод Select.  В Select можно задать таймаут, по истечению которого он обязательно завершается.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
0xdead
Гость
« Ответ #4 : 14-12-2005 14:00 » 

Спасибо. Разобрался. Я не close его , а shutdown (забыл добавть colse в конце). Все заработало.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines