程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> IP Messenger詳細分析

IP Messenger詳細分析

編輯:關於VC++

一、系統概述

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 類、結構等頭文件

另外在SRC目錄下,還有一個INSTALL目錄,該目錄中的文件是IP Messenger安裝程序的源 代碼,其主要文件描述在列表1.3 INSTALL目錄主要文件。

列表1.3 INSTALL目錄主要文件

屬性 名稱 描述 文件 INSTALL.CPP 安裝程序源文件 INSTALL.H 安裝程序頭文件

以上是IP Messenger的主要目錄及其主要源文件的描述,通過列表我們可以清晰看出IP Messenger的功能分布。在以下的詳細分析中,我們主要圍繞著這些源文件而展開。

3、IP Messenger源代碼的工程轉換

由於IP Messenger是使用以前版本的VC編寫的,因此在打開工程文件時,需要轉換該工程 文件為VC6版本的工程文件。

雙擊打開IPMSG.MDP文件,系統提示轉換IPMSG.MAK工程配置文件到VC6下的工程文件,如 下圖所示。

單擊 “是”按鈕,確定將工程轉換成VC6的工程。系統提示將MAK工程文件轉 換成DSP工程文件,如下圖所示。

單擊“確定”按鈕,系統根據MAK文件生成IPMSG.DSP文件,以及VC6下的 IPMSG.DSW文件,另外系統還生成了IPMSG.NCB和IPMSG.OPT兩個文件。

4、IP Messenger的工程配置

IP Messenger的配置和目前VC6的工程配置有些不同,其安裝工程文件和工程文件在混合 在一起,不像VC6工程文件,不同的工程在不同的項目下,分別進行配置。

單擊“Build”菜單,選擇“Set Active Configuration…”,彈出“Set Active Project Configuration” 對話框,如下圖所示。

IP Messenger的工程配置有6個,分別是Release的英文、日文以及Debug的ipmsg工程和安 裝工程。通過選擇不同的配置,可以編譯出不同的工程。根據需要,我們選擇ipmsg-Win32 Debug配置作為當前活動工程,此編譯配置可以編譯出Debug版的ipmsg。

單擊“Project”菜單,選擇“Settings…”,彈出 “Project Settings”對話框,選擇“C/C++”標簽欄,如下圖所示。

可以看到,在“Preprocessor definition:”中,工程使用了 “JAPANESE”宏定義,也就是說,編譯後的Debug版的ipmsg是日文版。當然,可 以根據需要,修改此宏為“ENGLISH”,就可以編譯出Debug版的英文ipmsg。

當然,在以後的分析中,我們將分析ipmsg的安裝工程,那麼就應當選擇ipmsg-Win32 InstallerDbg配置作為當前活動工程,編譯出Debug版的安裝工程。

這節的系統配置概述就到此結束,下一節將要分析IP Messenger的系統運行框架及其流程 ,通過分析和學習,掌握Windows的基本開發思想。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved