3

誰かがphp関数fsockopenで私を助けてくれますか?

このように関数を呼び出すと:

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

ホスト ドメインが使用できない場合、false が返されることはありません。その理由がわかりません。

4

3 に答える 3

1

ああ、あなたはUDPを使用しています。あなたの元の例はこれを示していませんでした。これは物事を変えます。PHPマニュアルから:

警告

リモート ホストに到達できない場合でも、UDP ソケットがエラーなしで開いているように見えることがあります。エラーは、ソケットとの間でデータを読み書きするときにのみ明らかになります。これは、UDP が「コネクションレス」プロトコルであるためです。つまり、オペレーティング システムは、実際にデータを送受信する必要があるまで、ソケットのリンクを確立しようとしません。

于 2012-07-17T12:05:54.463 に答える
0

これを試して

ini_set("display_errors","on")

ドメインが無効な場合は警告が表示されますが、ファイル ポインターが返されるため関数が TRUE を返すこと以外は、ファイルが正常に作成されたことを意味し、ファイルを作成できない場合にのみ FALSE が返されます。

于 2012-07-17T10:47:27.653 に答える
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

于 2012-07-17T11:10:35.687 に答える