2010-04-02 8 views
0

PHP 소켓 프로그래밍을 사용하고 소켓을 열어 데이터를 쓸 수 있지만 응답 시간이 길어 지거나 "최대 실행 시간"과 같은 오류가 발생합니다. 이 코드가 fgets ($ fp, 128)에 놓인 행 번호를 30 초 초과했습니다. 서버가 예상대로 응답을 보낸 것처럼 보입니다. 그러나 응답 메시지를받을 수없는 이유가 없습니다. 소켓에 대한 코드를 사용하여 코드를 읽습니다. 연결 및 데이터 읽기.소켓 연결 문제 + php

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

어떤 생각 ???

답변

1

혹시 서버가 아닌 다른 플랫폼의 클라이언트?입니다 내가 사랑하는 말 erent는 Windows/Linux/Mac을 의미합니다. 이들은 각각 다른 라인 엔딩을 가지고 있습니다. fgets()는 어떤 줄을 끝내기 전에 어떤 줄이 끝나기를 기대하는 줄을 읽어야한다. 한 시스템이 예를 들어 \ n을 보내고 다른 시스템이 \ r \ n을 예상하면이 문제가 발생할 수 있습니다.