Задать вопрос
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сек (какой то таймаут), запускаю еще раз - все ок
но почему так? я же сокет закрываю после себя
  • Вопрос задан
  • 1582 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Когда приложение умирает, сокет система не высвобождает сразу (по умолчанию), он переходит в TAIM_AWAIT.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽