Да.У вас есть два варианта.Самый простой способ - привязать сокет к 0.0.0.0
, что позволит связать сокет со всеми интерфейсами на машине.(Убедитесь, что вы действительно хотите все интерфейсы.)
В противном случае вы всегда можете создать> 1 сокет и привязать их индивидуально к интерфейсам, которые имеют смысл.
Вы пишете весь веб-сервер на PHP?
Кроме того, если функции чтения сокетов PHP работают, как большинство операционных систем, то ваш внутренний цикл, вероятно, неверен: в то время как HTTP-запрос заканчивается пустымнапример, это не означает, что функция read
ОС будет сегментировать данные построчно.
Редактировать: socket_read
очевидно будет сегментировать результатыпо строкам (это необычно), но вам нужно указать его в качестве третьего параметра.Согласно документации, значение по умолчанию будет , а не сегмент за строкой, но это не всегда так, т. Е. Значение по умолчанию изменилось.Вы, вероятно, должны указать это, чтобы убедиться, что ваш код не ломается при обновлении.(И, возможно, обновить, пока вы на это ...)