2010-04-02 3 views
0

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

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

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

ответ

1

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

Смежные вопросы