IP Messenger详细分析2011-04-19朱海清 孟学桢一、系统概述IP Messenger是一款局域网内部聊天、文件传输工具,具有很多优点,如数据通讯不需要 建立服务器、直接在两台电脑间通信和数据传输,支持文件及文件目录的传输,安全快捷以 及小巧方便等优异特点,因此很多公司都采用它作为部门、公司内部的IM即时通信工具。IP Messenger在程序结构方面采用了Windows SDK处理结构,通信方面采用了TCP/UDP通信 方式,在文件传输处理方面采用文件映射技术,等等。通过分析IP Messenger的运行、工作 原理,可以提高并加深对Windows处理流程的理解,提高SOCKET编程技术等,因此特对其源码 进行分析,以抛砖引玉,共同提高大家的编程技术。1、IP Messenger源代码的下载在写这篇文章时,IP Messenger的最新版本是2.06,因此大家在下载时尽量选择最新版本 下载。IP Messenger源代码的下载地址是http://www.ipmsg.org/,在网站的右上角,点击 English page,网站转换到英文界面,网站有英文版以及其它语言的版本,当然还有中文版 的链接(http://www.azhi.net/IPMsg/),建议大家尽量下载原版的英文版源代码,以利于 学习。2、IP Messenger源代码的目录及文件IP Messenger源代码的目录结构及文件详见列表1.1 IP Messenger源代码主要的目录及文 件:列表1.1 IP Messenger源代码主要的目录及文件
| 属性 | 名称 | 描述 |
| 目录 | SRC | 工程文件源代码和INSTALL目录 |
| 文件 | IPMSG.MAK | VC4及以前版本使用的工程文件,用来指定如何建立一个工程,VC6把MAK文 件转换成DSP文件来处理 |
| IPMSG.MDP | 后缀MDP(Microsoft DevStudio Project的简称)是老版本的项目文件, 相当于DSP文件 |
| PROT-ENG.TXT | 英文版的协议描述 |
| PROTOCOL.TXT | 日文版的协议描述 |
| README.TXT | 英文版的README |
| README-J.TXT | 日文版的README |
IP Messenger的SRC目录内容描述在列表1.2,SRC目录及主要文件。
| 属性 | 名称 | 描述 |
| 目录 | INSTALL | 安装程序源代码目录 |
| 文件 | BLOWFISH.CPP | 加密算法源文件 |
| BLOWFISH.H | 加密算法头文件 |
| BLOWFISH.H2 | 加密算法随机数头文件 |
| CFG.CPP | 系统配置源文件 |
| IPMSG.CPP | IPMSG的APP源文件 |
| IPMSG.H | IPMSG头文件 |
| LOGDLG.CPP | 日志DLG源文件 |
| LOGMNG.CPP | 日志处理源文件 |
| MAINWIN.CPP | IP Messenger主窗口源文件 |
| MISCDLG.CPP | 消息DLG,关于DLG,以及控件子类化等源文件 |
| MSGMNG.CPP | Socket管理源文件 |
| PLUGIN.CPP | Dll plugin加载源文件 |
| RECVDLG.CPP | 接收消息处理源文件 |
| SENDDLG.CPP | 发送消息处理源文件 |
| SETUPDLG.CPP | IP Messenger属性配置源文件 |
| SHARE.CPP | 文件传输接收管理源文件 |
| TAPP.CPP | 应用程序类源文件 |
| TDLG.CPP | DLG类源文件 |
| TLIST.CPP | 链表类源文件 |
| TREGIST.CPP | 注册表操作类源文件 |
| TWIN.CPP | 窗口类源文件 |
| MSGSTR.H | 字符串常量头文件 |
| TLIB.H | 类、结构等头文件 |