誰かがphp関数fsockopenで私を助けてくれますか?
このように関数を呼び出すと:
$fp = fsockopen('xywqnda.com', 80, $errno, $errstr, 10);
ホスト ドメインが使用できない場合、false が返されることはありません。その理由がわかりません。
ああ、あなたはUDPを使用しています。あなたの元の例はこれを示していませんでした。これは物事を変えます。PHPマニュアルから:
警告
リモート ホストに到達できない場合でも、UDP ソケットがエラーなしで開いているように見えることがあります。エラーは、ソケットとの間でデータを読み書きするときにのみ明らかになります。これは、UDP が「コネクションレス」プロトコルであるためです。つまり、オペレーティング システムは、実際にデータを送受信する必要があるまで、ソケットのリンクを確立しようとしません。
これを試して
ini_set("display_errors","on")
ドメインが無効な場合は警告が表示されますが、ファイル ポインターが返されるため関数が TRUE を返すこと以外は、ファイルが正常に作成されたことを意味し、ファイルを作成できない場合にのみ FALSE が返されます。
// 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