2012-03-20 5 views
2

私はループに...簡単なソケットのphpにサーバースクリプトが...

socket_select($read_set, $write_set, $exception_set, 2); 

呼び出す5.3スクリプトを作成しました。私は非ブロッキングソケットを使用していて、スクリプトはWin7マシン上で実行されています。

問題:この機能はスクリプトを2秒間ブロックします。これは、4番目のパラメータ($ tv_sec)がこのブロックを引き起こすことを意味します。

質問:$tv_sec$tv_usecの違いは何ですか? $tv_usecは何をしますか? PHPマニュアルで

Function description

socket_select(array&$read, array&$write, array&$ex, int $tv_sec[,int $tv_usec=0]) 

tv_secの: tv_secのタイムアウトパラメータを形成すると共にtv_usecの。タイムアウトは、socket_select()が戻るまでの経過時間の上限です。 tv_secはゼロになり、socket_select()がすぐに戻ることがあります。これはポーリングに便利です。 tv_secがNULL(タイムアウトなし)の場合、socket_select()は無期限にブロックされます。

tv_usecの:説明なし

答えて

1

あなたはマイクロ秒の所定量の後にタイムアウトにはsocket_select()関数をするとき$ tv_usecのパラメータが使用されています。これは、たとえば、selectが1秒未満でタイムアウトするようにする場合に便利です。

+0

ok、取得済み:usec =マイクロ秒、ありがとう! – Mike

関連する問題