« 【アルカナ】【ハート】【興味あります】 | メイン | 週末はアルカナハートのロケテですか »

ネットワークプログラミング(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.に戻ります。


これで上手く動いているみたいです。