2016-04-25 8 views
1

私のアプリケーションでは、2つの異なるソケットが定期的なデータを送受信しています。私はそれが特定の期間受信または送信しない場合は、ソケットを閉じる必要があります。私は定期的に流れるデータを使用しているので、私は以前に送受信の数を設定できませんでした。ソケットが受信または送信していない時間帯を見つける方法を教えてください。ソケットが一定期間受信していないことを確認する方法

+0

[最小限で完全で検証可能な例を作成する方法](http://stackoverflow.com/help/mcve)また、これまでに行った問題を解決するためのこれまでの研究や試みを含めてください。 –

+0

'select'を使ってあなたのソケットのI/Oを待つことができます:待つ最大時間を受け取りますので、予想されるI/Oアクティビティの表示がない場合は、ソケットを閉じることができます... manページを見て、いくつかの例をGoogleに書いて、あなたのコードを書いてください。 –

答えて

0

SO_RCVTIMEOでソケットの読み取りタイムアウトを設定してください。有効期限が切れた場合、recv()errno == EAGAIN/EWOULDBLOCKで-1を返します。

関連する問題