проблема с сокетом + php - PullRequest
       0

проблема с сокетом + php

0 голосов
/ 02 апреля 2010

Я использую программирование сокетов PHP и могу записывать данные в открытый сокет, но мне приходится долго ждать (или застревать) ответа или какое-то время получаю сообщение об ошибке типа «Максимальное время выполнения 30 секунд превышает номер строки где этот код помещен в fgets ($ fp, 128), я проверил сервер, кажется, он отправил ответ, как и ожидалось, но я не понимаю, почему я не могу получить ответ.

functon scoket_connection() {
      $fp = fsockopen(CLIENT_HOST,CLIENT_PORT, $errno, $errstr);
      fwrite($fp,$packet);
       $msg = fgets($fp, 128);
       fclose($fp)
       return $msg;
}

любая идея ???

1 Ответ

1 голос
/ 02 апреля 2010

Является ли случайно ваш клиент на другой платформе, чем сервер? Когда я говорю иначе, я имею в виду Windows / Linux / Mac. У каждого из них разные окончания строки. Предполагается, что fgets () читает строку, что означает, что она ожидает найти определенную строку, заканчивающуюся до того, как что-либо вернет. Если одна система отправляет, например, \ n, а другая ожидает \ r \ n, это может вызвать эту проблему.

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