2012-07-17 2 views
3

누군가가 PHP 함수 fsockopen을 도와 줄 수 있습니까? 나는이 같은 함수를 호출하는 경우PHP 함수 fsockopen false를 반환하지 않음

:

$fp = fsockopen('xywqnda.com', 80, $errno, $errstr, 10); 

사용할 수없는 호스트 도메인을, false를 반환하지 않습니다 난 왜 이해가 안 돼요!

+0

이상하게도 코드를 실행하면'$ fp'가'bool (false)'와 같아집니다. – Sarke

+0

여기 내 코드 :

+0

원래 질문을 업데이트하십시오. 더 읽기 쉽습니다. – Jocelyn

답변

0

노력이

ini_set("display_errors","on") 

도메인이 파일 포인터가 반환되기 때문에 함수가 성공하여 만든 파일을 의미 TRUE를 반환합니다보다 다른, 무효 인 경우 경고가 표시됩니다 될 것 FALSE 파일을 만들 수없는 경우에만 반환됩니다.

+0

나는 이미 이와 같은 것을 시도했다. 그것은 error_reporting (E_ERROR)이었고, 둘 다 작동하지 않는다 ... 어쨌든 당신의 대답에 대해 감사한다. –

0
// displays all warnings, notices and errors 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 

$fp = fsockopen('xywqnda.com', 80, $errno, $errstr, 10); 

연결 시도가 10 초 후에 시간 초과됩니다.
도메인을 사용할 수 없기 때문에 경고 메시지가 표시됩니다.
$ errno 및 $ errstr에 시스템 오류 번호 및 오류 메시지가 포함됩니다.
이 함수는 false를 반환하므로 $ fp는 false와 같습니다.

문서 : fsockopen

+0

여기 내 코드는

1

아, 당신은 UDP를 사용하고 있습니다. 귀하의 원래 예제는 이것을 보여주지 못했습니다. 이것은 사물을 변화시킵니다. PHP 매뉴얼에서 :

UDP 소켓을 경고 때로는 원격 호스트가 도달 할 수없는 경우에도 오류없이 열었습니다 나타납니다. 소켓에서 /에서 데이터를 읽거나 쓸 때 오류는 에만 나타납니다. 이유는 UDP가 "연결없는"프로토콜이기 때문입니다. 은 실제로 데이터를 보내거나받을 때까지 운영 체제가 소켓 에 대한 링크를 설정하려고 시도하지 않음을 의미합니다.

관련 문제