ネットワークプログラミング相談室 Port20
at TECH
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