CLI モードでの stream_socket_accept 関数の問題

WBOY
リリース: 2016-06-23 14:20:41
オリジナル
1265 人が閲覧しました

この投稿は jdgdf566 によって最終編集されました: 2013-08-30 17:41:37

ソケット

/* Open a server socket to port 1234 on localhost */$server = stream_socket_server('tcp://127.0.0.1:12345');$socket = stream_socket_accept($server);    /* Grab a packet (1500 is a typical MTU size) of OOB data */    echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";    /* Take a peek at the normal in-band data, but don't comsume it. */    echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";    /* Get the exact same packet again, but remove it from the buffer this time. */    echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";/* Close it up */fclose($socket);fclose($server);
ログイン後にコピー

PHP 警告: stream_socket_accept(): accept failed: 接続側が一定期間経過しても正しく応答しなかったため、または接続されたホストが反応しなかったため、接続の試行は失敗しました。
Apache ではそのような問題は発生しません。

ディスカッションへの返信 (解決策)

ファイアウォールは php を許可していますか?

ファイアウォールは php を許可していますか? ファイアウォールがインストールされていません

わかりません。エラー メッセージはタイムアウトです。つまり、接続を確立できません。

$errno を確認してください

わかりません。エラー メッセージはタイムアウトです。つまり、接続を確立できません

$errno を確認してください。確かにタイムアウトです。 stream_socket_accept($server) の第 2 パラメータが 0 の場合、無限時間ではありません。この関数はループ構造内で使用する必要があります。暫定的な結論はこうだ。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート