當前位置:編程學習大全網 - 源碼下載 - 飛鴿傳書的現代通訊

飛鴿傳書的現代通訊

MicrosoftWindows95/98/Me/NT4.0/2000/XP/2003

95/98/NT4.0;要求comctl32.dll(公***控件)的版本為5.x或更高。

(如果用戶安裝的IE是5.x或更高版本,那麽就不必擔心這個問題了)

註意:Windows3.1(和NT3.5x),請使用IPMessengerforWin16。 安裝/卸載執行setup.exe用戶可以將IPMsg安裝到指定目錄,或者重新註冊到啟動組,

如果需要刪除IPMsg,請先從控制面板中卸載,再手動刪除IPMsg目錄。

系統托盤區圖標

左鍵雙擊圖標,即可打開發送消息窗口.右鍵點擊圖標,可進入[服務設置],[離開]等。

發送消息窗口

發送消息時,若勾選了[封裝],則接收者要先打開信封才能看到消息,

如果用戶還勾選了[上鎖],則接收者在打開信封時還需要輸入密碼。

(密碼是由接收者自己在[服務設置]中設置的)

若要發送文件、文件夾,可直接將文件/文件夾拖入發送消息窗口,

或在發送消息窗口上點擊右鍵,再選擇發送文件或發送文件夾。

傳送文件、文件夾時,當接收者還沒有保存(下載)文件/文件夾時,若發送者關閉或重啟了IPMsg,則附帶的文件信息將被清除,

接收者將不能繼續接收(下載)到此文件.用戶列表前綴符號說明

“”表示用戶處於離開模式.

“|”表示用戶使用的不是2.0以上版本的IPMsg,

將不支持文件/文件夾的傳送,並且不支持通信數據加密。

“|”(短線)表示只支持文件/文件夾的傳送。

拖動列表表頭標題項可改變其順序,並可點擊右鍵選擇保存列表順序-在消息輸入窗口中,可使用Ctrl+Tab輸入制表符Tab。

在發送消息窗口上點擊右鍵,可以進入設置顯示優先級,選擇工作組,

搜索用戶(Ctrl+F),傳送文件,傳送文件夾,保存列表順序,字體設置,

窗口大小設置,固定窗口位置,列表顯示設置。

在用戶名上點擊右鍵,可設置其顯示優先級,

優先級按由小到大的順序排序。

通過設置顯示優先級,可將經常聯系的用戶至於列表頂端,

或者隱藏不需要聯系的用戶。

接收消息窗口

-在接收消息窗口上點擊右鍵,可以進入字體設置,

窗口大小設置,固定窗口位置。.

接收消息窗口標題欄中的“+”或“—”表示通信數據使用了加密算法。

“+”表示RSA/1024位,blowfish/128位加密。

“—”表示RSA/512位,RC2/40位加密。

如果用戶收到的消息附帶了文件,將會顯示出附件按鈕。

點擊按鈕即可保存文件.

其他

如果需要(通過路由器)連接到廣域網,則需要設置廣播地址。

詳見廣域網設置(廣播設置)

其它功能都很容易理解,用戶試壹試就明白。 1.隱藏/顯示窗口Ctrl+D;

2.按住Ctrl鍵再點[刷新]可保持現有用戶,搜索新上線的用戶;

3.打開發送/接收消息窗口Ctrl+Alt+S/R(需要進行詳細設置);

4.打開搜索窗口Ctrl+F;

5.接收到多個文件,保存時可勾選(全部)。 局域網聊天軟件飛鴿傳書是比較流行的局域網即時通訊軟件,由於歷史悠久,它具有比較多的用戶。因為FreeEIM的實現原理和飛鴿傳書差不多,希望廣大用戶了解其原理後,在使用時更加得心應手。

開發多年的飛鴿,在他的基礎上增加了些許功能,例如語音對話,這裏繼續討論FreeEIM(飛鴿傳書),前幾天,詳細的了解了FreeEIM(飛鴿傳書)的網絡協議,詳細分析並且實現了FreeEIM(飛鴿傳書)的消息傳遞過程,這裏就FreeEIM(飛鴿傳書)中的文件和文件夾的傳輸做詳細的說明。

在FreeEIM(飛鴿傳書)中,如果要進行文件或者文件夾的傳輸,首先需要做的就是消息的應答,通過UDP發送文件傳輸報文,另外的FreeEIM(飛鴿傳書)客戶端收到報文後,使用TCP協議發送應答報文,這樣就開始進行文件的傳輸了。

這裏開啟兩個線程,線程1負責文件的傳送,線程2負責文件的接受,下邊做壹壹說明。

首先,我們知道,可以發送多個文件,這些文件需要建立鏈表保存信息。

typedefstructfile_info

structfile_info*next;//雙向鏈表

structfile_info*forward;

char*file;//文件名

inttype;//文件類型:文件或者文件夾

intsize;//文件大小

structsockaddr_inaddr,//目標網絡信息

}FILE_INFO;

文件傳送鏈表由專門的線程維護,這樣,線程1就可以專心進行處理文件傳輸隊列就可以了,線程1始終查詢這個鏈表,如果表頭為NULL,就說明沒有要傳輸的文件,表頭非空,就開始發送報文,獲得正確的應答後,就可以開始文件的傳輸了,文件傳輸結束,將相應的鏈表節點刪除。這裏借鑒了很多程序中使用非常廣泛的“命名池”相關的概念,只不過這裏我們使用的是“文件池”,可以這麽認為,如果有文件要傳輸,可以不用考慮是否有文件正在傳輸,只要把要傳輸的文件放入“文件池”就可以了,同時,不用考慮“文件池”的大小,線程1是文件池的服務線程,它檢測文件池的大小,如果非空,就會逐次傳輸文件。

這裏需要特別註意的就是關於文件夾的傳輸,這個FreeEIM(飛鴿傳書)壹個難點,因為對於文件夾的內容是沒有顯示的,需要我們逐次的判斷,在飛鴿傳書中是這麽處理的,如果是壹個文件夾,就發送文件屬性為IPMSG_FILE_DIR的信息包,FreeEIM(飛鴿傳書)客戶端收到這個信息包後,就創建這個文件夾,然後發起發送的FreeEIM(飛鴿傳書)客戶端,進入文件夾,傳送文件夾內的文件,如果該文件夾下,還有文件夾,使用相同的方法,在文件夾內的文件傳送結束後,就發送FREEEIM_FILE_RETPARENT信息包,接受的FREEEI_FILE_RETP報文的FreeEIM(飛鴿傳書)客戶端,執行返回上壹級目錄,FreeEIM(飛鴿傳書)發送端,就需發送目錄下的文件。這樣循環操作,最終完成文件的傳輸,這個過程比較難以理解。

有了上邊的知識,開發文件傳輸功能就變得簡單多了,文件的接受也可以類推了,同樣開啟壹個線程維護接受文件鏈表,逐次接受身下的文件,鏈表為空時。文件傳輸會遇到文件讀寫問題,有的文件發送是被打開了,這樣會造成訪問違規,所以要有相應的處理,才能讓程序更加穩健。

程序啟動時先讀取用戶配置文件,壹般是*.ini格式,然後,使用Winsock的廣播消息給整個局域網發送壹個數據包,這時候,如果其他電腦已經運行了飛鴿傳書,那麽他收到這個包後,會將包的信息讀取出來,當然,這個包裏有用戶的IP,用戶名,性別等等。這樣,在用戶列表裏就多了壹個用戶了。他的用戶檢查方式就如此簡單而已。至於跨網段的實現,只需簡單地修改壹下廣播地址就行了,如果不考慮速度,用戶可以給整個internet發廣播消息。消息發送,文件傳輸這些功能,都比較簡單,如果用戶會網絡編程,給用戶對方IP地址,這些功能實現起來再簡單不過了。語音、視屏等,只需編寫壹些語音視頻采集代碼,傳書的話,就像傳文件壹樣;這裏給段廣播消息的實現代碼吧:

//發送廣播登陸消息 所有的設置信息都保存在註冊表的以下位置:

\\HKEY_CURRENT_USER\Software\HSTools\

用戶密碼以不可逆加密方式存儲

*如果用戶忘記了密碼,可以在註冊表中將此鍵值刪除*

*\\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr*

-本軟件使用的默認端口為2425

若僅使用UDP協議的端口,將不能傳送文件/文件夾

(如果安裝了防火墻,則必須打開相應的TCP和UDP端口)

-本軟件為自由軟件,用戶可以隨意傳播,但源碼使用請參見許可協議。

-只有在啟動或退出程序,使用離開模式,刷新在線用戶時IPMsg才會進行消息廣播。

-本軟件由MicrosoftVisualC++6.0編譯 -主機號全部為1的IP地址,即廣播地址

例如,連接到壹個C類子網(即24位網絡號,8位主機號),IP地址為

aaa.bbb.ccc.ddd,其廣播地址即為:aaa.bbb.ccc.255

若對方處於另壹個私有子網中,廣播可能無效。

-更多問題,請參閱相關資料或咨詢用戶的網絡管理員.

-若兩臺主機的連接經過了多個路由器,請直接指定對方IP地址

-撥號上網用戶請勾選[撥號連接]

當刷新在線用戶列表時,列表不會被清空。 啟動飛鴿傳書前,用戶可以指定其運行時使用的端口,

且可以使用不同的端口打開多個窗口.用法如下:

ipmsg.exe2426(用戶可在快捷方式上設置)

但是用戶只能與同時也使用該端口的用戶通信.

-所以用戶盡可選用用戶喜歡的端口運行本軟件.

介於10000至60000可能更安全些.

用戶也可以咨詢用戶的網絡管理員.

如果有多個網卡(IP),用戶可以將飛鴿傳書與指定的網卡(IP)進行綁定。

命令格式如下(用戶可以在快捷方式上設置):

ipmsg.exe[端口]/NICIP地址

例如:C:\>ipmsg.exe/NIC192.168.10.100;支持命令方式發送消息

命令格式如下

ipmsg.exe[端口]/MSG[/LOG][/SEAL]<主機名或IP地址><消息>

例如:C:\>ipmsg.exe/MSG/SEALlocalhostHello。 -IPMsg的技術討論區是開放的.

如果用戶想訂閱相關郵件,請聯系

-歡迎報告bug,以及提出建議

-如果用戶有任何疑問,請E-mail聯系.

中文版可聯系阿誌

-發送錯誤報告,請勿必記錄以下信息:

軟件版本,操作系統,故障描述,以及故障重現方法等。 ver1.00——日文版(1996/08/19)

ver1.31——英文版/日文版(1997/09/01)

ver2.00——英文版/日文版(2002/11/19)

支持文件/文件夾傳送

支持通信數據加密

ver2.03——Bug修正(文件傳送引起緩沖溢出)

廣播設置支持主機地址(FQDN)解析

ver2.04——增加綁定網卡(IP)功能

ver2.05——Bug修正(2.04版當激活發送/接收消息窗口時,無法註銷/關閉系統)

ver2.06——很小的調整

ver2007——全面調整軟件的界面可用性、性能穩定性。

ver2014——全新界面和用戶體驗,高效文件傳輸

  • 上一篇:地下城賬號怎麽解除封號
  • 下一篇:洛克王國的土地在哪裏?
  • copyright 2024編程學習大全網