- - PR -
Socket.Accept の待機時間
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-05-21 19:07
こんばんは、チャロです。
くだらない質問ですみません。 Socket.Accpetメソッドは接続要求があるまでブロックしますが、 一定時間接続要求がなかったときに、メソッドを中断させるにはどうしたら 良いのでしょうか。 | ||||
|
投稿日時: 2004-05-21 22:50
タイマーっしょ。
| ||||
|
投稿日時: 2004-05-22 00:01
返答ありがとうございます。
タイマーってことは、Acceptを含んだスレッド自体を Abortするってことですか? | ||||
|
投稿日時: 2004-05-22 00:15
スレッドに Accept() させておいて、タイマーで監視して、タイムアウトしたらスレッドの外からソケットをクローズするとか。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-05-22 00:58
>スレッドに Accept() させておいて、タイマーで監視して、タイムアウトしたらスレッドの外からソケットをクローズする
そのようにした方が設計もスマートになりました。 ありがとうございます。 | ||||
|
投稿日時: 2004-05-22 01:02
ソケットを外から閉じるても問題ないのでしょうか。閉じた場合、ブロックしていたスレッド
では、SocketExceptionでも発生するのでしょうか。 MFC時代のソケットは、外から閉じるとGP起きましたので・・・ 非同期ソケットを使うというのは、面倒くさいでしょうか。 | ||||
|
投稿日時: 2004-05-22 06:38
諸農です。
ブロックさせずにBeginAccept()させてみるって言うのはダメでしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-05-22 12:21
生ソケットでは問題ありません。 VC++ では生ソケットか自作のクラスを使っています。 CAsyncSocket は KB にも載っているバグがあるので使用を避けています。 SocketException は妥当な例外なので、どっちみち捕捉しないと駄目ですよね? _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ |