ネットワークプログラミング相談室 Port20 at TECH
[2ch|▼Menu]
429:デフォルトの名無しさん
07/11/12 10:02:48
AcceptExの完了をGetQueuedCompletionStatusで捕捉できない・・・
その次のクライアントからの送信はGetQueuedCompletionStatusで捕捉できるのですが
第4引数のLPOVERLAPPEDはAcceptExに渡したのがきます。 ><

期待したのは
メインスレッドでAcceptExを呼ぶ -> クライアントがconnectしてくる ->
   ワーカースレッドで呼ばれてたGetQueuedCompletionStatusが処理を返す -> クライアントが"Hello"と送る -> ワーカースレッドで呼ばれてた(ry
という感じなのですが

実際は
メインスレッドでAcceptExを呼ぶ -> クライアントがconnectしてくる ->
   まだGetQueuedCompletionStatusから返らず@ワーカースレッド -> クライアントが"Hello"と送る -> ここで初めてGetQueuedCompletionStatusが処理を返す
となってしまします。
初めてGetQueuedCompletionStatusが返ったときのOVERLAPPED::InternalHighは5となっておりクライアントからの送信に反応したものと思われます。

AcceptExの完了を捕捉しないのが仕様かと思ったのですが
URLリンク(www.codeproject.com)のコードを見てみるとワーカースレッド内にswitch文内をみるとsend、recvのみならずacceptも捕捉できることを
前提として書かれてるように見えます。 しかし実際コンパイルして実行してみるとやはり上記とおなじことになってしまいました。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4447日前に更新/263 KB
担当:undef