PHP: Sockets, socket_read () возвращает только 1-й символ - PullRequest
1 голос
/ 14 ноября 2010

Я новичок в программировании сокетов, я только начинаю играть с многопользовательским серверным скриптом.Проблема возникает при чтении сокета, если мой ответ

"A, что-то или другое"

socket_read дает только "A"

Любая идея, почемупроисходит?

  if (false === ($input = socket_read($clients[$i], 2048, PHP_BINARY_READ))) {

Источник: http://pastebin.com/dEvYLUfV

1 Ответ

0 голосов
/ 18 января 2011

Если я не ошибаюсь, socket_read читает только те данные, которые доступны в данный момент, и, возможно, ваш PHP работает быстрее, чем сокет вашего сервера (и пытается прочитать данные до того, как они станут доступны).вам следует добавить какой-нибудь заголовок к вашему сообщению, который указывает длину ожидаемого сообщения.Затем вы продолжаете "socket_read", пока не прочитаете столько байтов.

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