18

socket_read通話のタイムアウトを設定するにはどうすればよいですか?初めて呼び出すときはsocket_read、データが送信されるまで待機します。5秒以内にデータが送信されない場合は、接続をシャットダウンします。ヘルプはありますか?私はすでにSO_RCVTIMEO運が悪かったので試しました。

ソケットを作成してsocket_create()接続をリッスンし、接続時にデータをリッスンしてから何かを実行します。タイムアウトが発生したら、実行してから実行socket_shutdown()socket_close()ます。

4

4 に答える 4

26

これにより、ソケットのタイムアウトが 5 秒に設定されます。

socket_set_option($socket,SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>0));
于 2011-11-20T23:09:41.847 に答える
12

SO_RCVTIMEOでsocket_set_optionを試しましたか

入力操作のタイムアウト値。

于 2008-12-23T18:58:12.830 に答える
4

私はsocket_listenを実行し、次にtime()+ 2を使用して手動タイムアウトを作成し、nonblockセットとsocket_read()を内部に使用してwhileループを作成しました。正常に動作しているようです。代替案はありますか?

更新:ソケットを非ブロッキングとして設定してからsocket_listenを使用すると、必要なタイムアウトが提供されることがわかりました。

于 2008-12-23T19:11:59.277 に答える