2012-07-04 4 views
0

현재 HTTP 연결을 열고 쓰는 소켓을 사용하고 있으며 응답에 반드시 관심이 없다고 요청합니다! 핑 소리 등을 추적하는 것PHP HTTP fsockopen 및 fwrite를 통한 요청이 Linux에서 예상대로 작동하지 않습니다.

이것은 이전 서버와 Windows 개발 환경에서 작동했지만 새 우분투 서버에서는 작동하지 않습니다.

나는에 fwrite 후 읽기를 할 경우

 $aUrlParts = parse_url($sUrl); 

     $fp = fsockopen(
      $aUrlParts['host'], 
      isset($aUrlParts['port']) ? $aUrlParts['port'] : 80, 
      $errno, $errstr, 30 
     ); 

     $sHeader = "GET {$aUrlParts['path']}?{$aUrlParts["query"]} HTTP/1.1\r\n"; 
     $sHeader.= "Host: {$aUrlParts['host']}\r\n"; 
     $sHeader.= "Connection: Close\r\n\r\n"; 

     fwrite($fp, $sHeader); 
     fclose($fp); 

을 다음과 내가 그것을 모두가 서버에서 작동시킬 수 있지만 이것은 단지에 비해 요청이 방법을 수행하는 점을 패배로 우리가 사용하는 코드는 URL을 말림

나는 소켓을 플러시하고 비 차단으로 설정하려고했지만 그 중 작동하지 않는다! 그냥 읽고 일을하는 것이 유일한 방법입니다! 내가 언급 할 것이다 이러한 새로운 서버를 기반으로 AWS를하고 나는 그들의 소켓 구현이

+0

수신 서버의 웹 로그에 단서가 있습니까? – BugFinder

+0

불행히도 수신 서버는 모두 제 3 자입니다 – Tristan

+0

로그에 액세스 할 수 없습니까? 그게 도움이되지 않는, 대부분 않습니다. 집에서 테스트 서버를 설정하여 작동 여부를 확인할 수 있습니까? – BugFinder

답변

0

나는 이것이으로 가치가 있는지 확실하지 않다 다를 수 있습니다 느낌이 있습니다

어떤 도움을

편집에 감사드립니다 대답을했지만 똑같은 문제가 있었고 그게 내가 여기 온 이유입니다. 내 유일한 차이점은 서버 자체에 대한 요청을 실행하려고했습니다.

내 솔루션이 서버의 액세스 관리에있었습니다. 나는 내 자신의 네트워크를 제외하고는 누구도 볼 수 없도록 차단하는 htaccess 파일을 가지고 있었고 서버가 스스로 서버를 요청하지 못하도록 막았습니다.

아마도 서버 액세스 관리와 관련이 있습니다. 이것이 도움이되는지 알려주십시오.