WinSockで非同期にクライアントを接続
WinSockの関数にはブロック関数がいくつかあります。簡単なテストプログラムの場合にはそれでいいのですが、まず実用的ではありません。そこで非同期化を行うのですが、その仕組みもWinSockには準備されています。
下記にその流れをまとめてみました。
まず、非同期化したいイベントをWSAAsyncSelect関数で指定します。
そのイベント処理は、ウィンドウイベントの一つとして処理します。WSAAsyncSelect関数には、そのウィンドウのウィンドウハンドルと、イベントの名前を渡します。
上図のサンプルでは、イベント名はWM_TCPとして定義しています。
あとは、イベント処理部分に、SOCKET情報と、イベント情報(FD_ACCEPTなど)がわたってくるのでそこで、accept関数を呼び出し、接続処理します。
参考URL、参考書籍
- Internet Programming - TCPクライアントの作成手順(非同期型)
- http://yonex1.cis.ibaraki.ac.jp/~yonekura/lecture03/lecture03d.html
猫でもわかるネットワークプログラミング 第2版 (猫でもわかるプログラミングシリーズ)
- 作者: 粂井康孝
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/02/25
- メディア: 単行本
- 購入: 1人 クリック: 16回
- この商品を含むブログ (11件) を見る
octech内関連エントリ
- TCPテスト - octech .. 同期型TCPサーバープログラム
- TCPテストの弐 - octech .. 同期型TCPクライアントプログラム