2011-10-27 7 views
0

C winapiで小さなWebサーバーを設計しました。ローカルホストの接続がクローズされていません。select

私はlocalhost(Firefox)から '接続が閉じられました'を検出するためにselectを使用します。

ローカルサーバーでFirefoxでリクエストを開始し、Firefox(接続停止ボタン)との接続を閉じるまでソフトウェアが待機します。

約10秒後にFirefoxからの接続を閉じると、私のソフトウェアは接続が切断されたことを検出できます。

しかし、私は1分後に接続を閉じた場合、私のソフトウェアは何も検出されません...

はONLY、私は、Firefoxを閉じると、接続が閉じられ、最後にFirefoxを使って閉じられ、最後に検出されたか...されます?!

答えて

0

ソケットのクローズの検出は、ソケットが接続の他の特性とともにどのように閉じられたかに非常に依存します。私は、合理的な時間内に閉じた接続を検出する1つの方法は、(両方向の定期的なポーリングを確立する場合のように)接続に書き込むことを試みることであることがわかりました。すぐにエラーが発生するはずです。

あなたの特定のケースでこれがどのように役立つかわかりません。

+0

私の場合:1)Firefoxはリクエストを送信します。 2)私のサーバーは苦労し、ハードワークとCPU使用率をキャンセルするためにFirefoxの切断を検出する必要があります。 3)私のサーバーは部分的な結果を送信する4)再び、私のサーバーは苦労し、asapなどを取り消すためにfirefoxの切断を検出する必要があります...そして、最初の送信後、ファイアフォックスプロセスが完全に終了していないので、 :(もし私がうんざりをしたら、私はすべてのケースで切断を検出することができますが、私のサーバーはすでに彼の努力をしており、これはあまり最適化されていません... – user1016916

関連する問題