ネットワークプログラミング(6)
非同期ソケットによる接続がやっとうまく行ったようです。
何だか苦労したな・・・。
基本的には WSAEventSelect() を使って、タイムアウトつきで WSAWaitForMultipleEvents() を呼び出すというアルゴリズムです。
サーバ側
1.socket()
2.bind()
3.WSAEventSelect()
4.listen()
5.WSAWaitForMultipleEvents()
6.accept()
1.から順に実行しますが、5.でイベントがなかったら再度5.でイベント待ちをします。
クライアント側
1.socket()
2.WSAEventSelect()
3.connect()
4.WSAWaitForMultipeEvents()
3.で接続できたらそこで終了。出来なかったら4.で待ってイベントがあったら終了。なかったら3.に戻ります。
これで上手く動いているみたいです。