非同期呼び出し

IP通信をするネットワークプログラムを作る際に、WinSock2を直接叩くやり方はやった事が無くて、いつもCodeProjectで見つけたライブラリ(http://www.codeproject.com/internet/serversocket.asp)を使っているんだけれど、それで初めて、ClientではなくてServerを作った時に思った事。

OnEventでの通知によっては、Connectionを閉じる必要があるので、通信インスタンスを管理するクラスに何らかの通知をしなければいけない。でもPostMessageはプラットフォーム限定なOS依存のAPIなので、嫌だな〜って思って、delegateでの呼び出しにしてもうまくいかず。自分がいつも使ってるfastdelegateは同期呼び出しだったのが原因だった。

プラットフォームに依存しない非同期呼び出し方法は無いかな〜と思って調べてみた。

http://www.codeproject.com/cpp/ElmueSignalsandSlots.asp
http://asio.sourceforge.net/boost-asio-proposal-0.3.6/libs/asio/doc/tutorial/index.html

boostに採用される事を考えるとASIOがいいのかなぁ。IP通信処理自体このライブラリ使って作れるし。それにプラットフォームに依存しないものが作れそう。