2010-10-04 2 views
5

Предположим, что у вас есть сокет, прослушивающий порт TCP, и некоторые клиенты подключены. Когда один из них выдает sock_close (fd) в C и пытается снова привязать его к одному порту, сбой не выполняется. Некоторые TIME_WAIT состояние видно на «NETSTAT -plutnoa», такие как:Закрытие прослушивающего сокета TCP в C

tcp  0  0 127.0.0.1:4567   127.0.0.1:32977   TIME_WAIT -    timewait (17.12/0/0) 

Итак, как можно правильно отсоединить разъем сервера и воссоединиться на том же порту сразу?

+1

Я нашел SO_REUSEADDR, проверяя его сейчас ... – whoi

ответ

8

Вы хотите использовать опцию SO_REUSEADDR на сокете. Соответствующая справочная страница - socket(7). Вот его example. This question объясняет, что происходит.

Смежные вопросы