ネットワークプログラミング相談室 Port11
■ このスレッドは過去ログ倉庫に格納されています
0511masataka
NGNGどうも使い方がよくわかりません。
いままでは、WSAAsyncSelectの方を使っていて、問題ありませんでした。
socket → WSACreateEvent → WSAEventSelect → bind →
→ listen → WSAWaitForMultipleEvents → WSAEnumNetworkEvents
の順番で呼び出すのですが、たしかに、FD_ACCEPTイベントは発生し、所得でき
ます。
しかし、それ以外のイベントが発生しません。
また、FD_READがもし発生したとしても、WSAAsyncSelectのように、socketが引
数で飛んでくるわけでもありませんので、socketハンドルを所得することができ
ません。
もしかして、こういうものなのでしょうか?
もちろん、FD_ACCEPTが発生した時に、accept関数を呼び出し、その後、recv関
数を呼び出せば正常に読み込めます。
現在は、
FD_ACCEPTが発生→accept関数→read関数→close関数
という順序で、やりたいことはできているのですが、
なんとなく納得できません。
WSAEventSelect(listenSocket,hEvent,FD_ACCEPT | FD_READ | FD_WRITE |
FD_CLOSE) として呼び出しているので、FD_CLOSEイベントに対応してclose関数
を呼び出さなくてはいけないような気がするのですが。
以上、詳しい方がいらっしゃいましたらば、よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています