다음 코드는 내 웹 클라이언트 udp : //192.168.1.107 : 2159의 주소를 사용하여 Linux 서버에서 실행할 때 UDP 패킷을 보냅니다. 그러나 코드에 표시된 주소 Linux 서버 주소를 사용하여 클라이언트에서 동일한 웹 페이지를 호출하면 UDP 패킷이 방출되지 않습니다. 크롬을 사용하는 PC 클라이언트와 Safari를 사용하는 Mac 클라이언트를 모두 시험해 보았습니다. 또한, phpinfo()는 allow_url_fopen이 "On"임을 보여줍니다. 또한, 나는 fflush() 함수 없이도 코드를 시도했다.PHP fsockopen을 사용하여 클라이언트 웹 페이지에서 서버로 UDP 패킷을 보내지 못하는 이유는 무엇입니까?
클라이언트 웹 페이지 및 PHP 소켓에 대한 제한 사항이 있습니까? 이 인터넷 검색을 볼 수 없습니다. 그건 그렇고, 나는 같은 클라이언트 컴퓨터에 자바 애플 리케이션을 코딩하고 문제없이 UDP 패킷을 주소와 포트로 보냅니다.
phpinfo();
$errno = 0;
$errstr = "";
$fsocket = fsockopen("udp://192.168.1.103:2195", $errno, $errstr);
if(!$fsocket) {
echo "$errstr($errno)<br/>\n";
} else {
$out = "Oh ya baby!\r\n";
fwrite($fsocket, $out);
fflush($fsocket);
fclose($fsocket);
}
감사합니다.하지만 해당 버전의 전화도 시도했지만 패킷을 가져 오지 못했습니다. 다른 시스템 구성을위한 PHP 설정인지 궁금합니다. –
다음은 내가 시도한 텍스트입니다. $ fsocket = fsockopen ("udp : //192.168.1.108", 2195, $ errno, $ errstr, 30); [/ code] –
아니요, 작업. 동일한 호스트에있는 두 번째 터미널에 udp 테스트 서버를 설치하여 먼저 방화벽이 액세스를 금지하지 않도록하십시오 :'nc luv 2195'. 그런 다음 다른 터미널에서 'udp : // 127.0.0.1' 및 포트'2195 '를 사용하여 PHP 스크립트를 실행하십시오. 그것은 내 컴퓨터에서 작동했는데,'php.ini' 파일을 수정하지 않았습니다. 이것을 확인하십시오 : http://radarearth.com/content/using-netcat-udp-port-troubleshooting – hek2mgl