Мой сокет UDP bind()
подключается к порту 53 (DNS). Имеет ли UDP состояние TIME_WAIT
или использует SO_REUSEADDR
бессмысленно в сокетах UDP?
SO_REUSEADDR с сокетами UDP в Linux. Это необходимо?
comment
Почему вы привязываете сокет UDP? Если это необходимо, возможно, вам нужно использовать TCP
- person Adrian Cornish   schedule 22.09.2012
comment
@Adrian Cornish Как еще сообщить ОС, какой порт прослушивает ваш UDP-сервер?
- person Barmar   schedule 22.09.2012
comment
Вы вроде про клиента, это про сервер. Например, сервер NTP должен быть привязан к порту 123.
- person Barmar   schedule 22.09.2012
comment
Вот объяснение варианта использования: происходит с ранее открытым сокетом"> stackoverflow.com/questions/775638/
- person Serge   schedule 22.09.2012
Ответы (1)
UDP не имеет соединений, поэтому нет ничего похожего на TIME_WAIT. Вам не нужно использовать SO_REUSEADDR.
Если вы прослушиваете широковещательный или многоадресный адрес, вам может потребоваться использовать SO_REUSEPORT, чтобы при наличии нескольких прослушивателей на одном компьютере они не конфликтовали. Однако, насколько я могу судить, в Linux этого нет.
person
Barmar
schedule
22.09.2012