IP Messengerソースの解析

CV.netにメッセージ送受信機能をつけるため、IP Messengerのソースを解析してどんなことをやっているのか見てみた。
以下、メモ



(ipmsg.h)
#define MAX_SOCKBUF 65536
#define MAX_UDPBUF 16384
#define IPMSG_BR_ENTRY 0x00000001UL
#define IPMSG_BR_EXIT 0x00000002UL
#define IPMSG_BR_ISGETLIST2 0x00000018UL

blowfish.cpp : BLOWFISHアルゴリズムによる暗号化/復号化
reg.cpp : レジストリの設定と読み取り (HKEY_CURRENT_USER\Software\HSTools\IPMsg以下)
Ipmsg.cpp : コマンドライン文字列の解析とTMainWinクラスCreateメソッド呼び出し
Logdlg.cpp : [IP Messanger設定]-[詳細&ログ設定]ダイアログ
Logmng.cpp : ログファイル書き出し処理(書き込み時のフォーマット等)
Mainwin.cpp : メインWin(=常駐アイコンの部分)
参加 Message Packet送出
void TMainWin::EntryHost(){ cfg->ListGetが真 BroadcastEntry(IPMSG_BR_ISGETLIST2);偽 BroadcastEntry(IPMSG_BR_ENTRY); }
脱出 Message Packet送出
void TMainWin::ExitHost(){BroadcastEntry(IPMSG_BR_EXIT);sleep(100)の後もう一度同じことを実行(念のため?);}
ホストリストの送信
void TMainWin::SendHostList(MsgBuf *msg)



細かいことはここには書かないが、XPと2000等の内部仕様の違いを吸収しているところやメッセージ送受信のタイミングとか、参考になる部分が多かった。(UDP通信とTCP通信)

やっぱり実際に動いているもののソースが一番。(H.Shirouzuさん、サンクス!)
MSのサンプルなんかは、あまりに簡単にやりすぎているので、実際に動かしたときに問題になるであろう部分が省略されている...


MEMO(38185)