Ubuntu игнорирует SO_REUSEADDR? - PullRequest
0 голосов
/ 09 июля 2020

Я разрабатываю веб-сервер на Ubuntu 20.04 / x64. Сервер случайно не запускается из-за ошибки EADDRINUSE. Когда это происходит, netstat показывает, что порт, к которому я пытаюсь выполнить привязку, находится в состоянии TIME_WAIT.

Это strace, когда это происходит:

socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 40
setsockopt(40, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(40, {sa_family=AF_INET, sin_port=htons(6379), sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)

Как вы можете видеть, я ' м уже установил SO_REUSEADDR. Почему я все еще не могу связать? Я что-то не так сделал со своими системными вызовами? Есть ли параметр в Ubuntu, который мне нужно настроить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...