LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

PHP socket_bind() — Address already in use?

у меня следущая последовательность действий:
socket_create();
socket_bind();
socket_accept();
socket_close();


запускаю этот как бы сервер, подключяюсь к нему, сервер завершает работу (без циклов). Все хорошо
запускаю сервер сразу же второй раз но выскакивает
PHP Warning:  socket_bind(): unable to bind address [98]: Address already in us

жду где то 30сек (какой то таймаут), запускаю еще раз - все ок
но почему так? я же сокет закрываю после себя
  • Вопрос задан
  • 1555 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Когда приложение умирает, сокет система не высвобождает сразу (по умолчанию), он переходит в TAIM_AWAIT.

Если вы хотите явно указать, что сразу после закрытия сокета его можно сразу открыть, нужно указывать опцию SO_REUSEADDR
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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