ネットワークプログラミング相談室 Port29at TECHネットワークプログラミング相談室 Port29 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト210:192 13/06/08 23:51:12.09 かなり自己解決したっぽい プロセスを起こすタイプのマルチスレッドサーバの現代版サンプル(他)↓ http://www.v6pc.jp/jp/upload/pdf/socket-sample-20121203.pdf いとぢゅん氏が絡んでいたやつっぽいので多分信用に足る で、Winsockにおいてプロセスにソケットを渡す方法↓ http://app.m-cocolog.jp/t/typecast/114340/102386/category/3335520 プロセスの終了を何の工夫も無くWaitForMultipreObjects()で待つと64プロセスが上限になるが、 そこはそれ、WaitForMultipreObjects()で64プロセス待つスレッドを64スレッド待つ、とかいう 多段構成が考えられる(いや知らんけど多分、 WinsockはGUIとの共存に適した非同期インタ──フェ──スも有するが、 とりあえずそこまでウィンドウズべったりにしなくとも、 select()かWsaPoll()だけでもマルチスレッドサ─バをなんとか構成できるのではないか(適当) 211:192 13/06/09 00:01:04.61 ちなみに、WinsockではデフォルトでFD_SETSIZE=64だが、 socket()は平気でこれより大きいfd番号を返してくる ていうか、現代のOSではLinuxだろうがWindowsだろうがFD_SETSIZEの制限に特に意味はなく、 FD_ISSET()の第一引数には 0..max{ socket()が返した値 } + 1 というの連番を与えるのではなくて、 socket()が返した数値(FD_SETSIZEより大きく成り得、かつ離散的)を配列かvectorにでもとっておいて、 その値を直接与えるのが正しいっぽい 上の現代版サンプルでもそうなっている(つまり>189のやり方は古い疑い有り) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch