




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、飛鴿傳書軟件的設計與測試飛鴿傳書軟件的設計與測試摘摘 要要網絡通訊在當今已經不算新鮮事物,但大多數網絡通訊都需要借助internet 上的服務器,這就給那些具有大規模內部網絡的用戶造成了許多問題,如浪費網絡資源、遭遇到網絡攻擊、傳播的病毒、破壞防御系統等等。由于互連網上的網絡通訊工具給企業內部信息交流帶來了不便,所以為了方便內部網絡的用戶之間的溝通,需要開發一個基于局域網的信息收發系統的即時通訊工具,實現在內部網絡中進行信息的交流。本課題設計主要針對局域網通訊而開發設計的,采用的是 c/s 構架,類似飛鴿傳書系統,來實現聊天、文件傳輸功能,并借助一些網絡通訊組件,成功的實現了在局域網上的即時通
2、訊。本論文的目標是設計一個類似飛鴿傳輸的局域網通信軟件,并分析它在其領域的優勢。本設計以 c 編寫,能在 windows 2000/net/xp 等環境下運行。設計共分為五大模塊,分別是:首先,介紹選題背景及意義和國內外研究現狀;其次,介紹 tcp/ip 點對點協議技術,c/s 架構和 socket 網絡編程技術;再次,對當前局域網文件傳輸進行需求分析并提出解決方案;然后,根據解決方案對系統進行設計;最后,對工作計劃統計以及分析系統進行測試并得到測試結果。關鍵詞關鍵詞:聊天;傳輸;socket;飛鴿傳書;c/s 結構design and implementation ip messenger
3、based on lanabstractthe network communication already do not calculate the new things now, but the majority network communication all need to be support by the server on the internet, this make these user have the large-scale internal network who many problems, such as waste network resources, be at
4、tacked by network, dissemination virus, destruction defense system and so on. because the interconnection network communication facilities on the interior communication brought inconveniently for the enterprise, in order to facilitate internal communication between network users, needs to develop on
5、e based on the local of instant message area network information receiving and dispatching system instant message facilities, realizes carries on the information which network the exchange. this topic design mainly aims at the local area network communication to develop the design, uses is the c/s s
6、keleton,like ip messenger, for chat and files transmission.lan against the text chat, documents and folders transmission, the design of a fake ip messenger of lan software, and analyze it in their areas of advantage. the design is developed by c program it can make in the cnvironment of windows 2000
7、/net/xp of topic selection, in the environment the design altogether divides into five big modules, respectively is: first, introduction selected topic background and significance and domestic and foreign research present situation; second, introduces the tcp/ip point to point protocol technology; c
8、/s construction technique and sockt network programming technology; third, carries on the demand of the current local area network file transfer to analyze and propose the solution; fourth, carries on the design according to the solution to the system; fifth, statistic the work plan, awalys and test
9、 the system and obtains the testnesult.key words: chat;transmission; socket; c/s skeleton;ip messenger 第 1 頁 共 20 頁目目 錄錄論文總頁數:20 頁1引言.11.1 課題背景.11.2 本課題主要研究背景.11.3 本課題主要研究思路和方法.11.4 研究項目的目的以及意義.21.5 winsocket 的尋址方式.22系統需求分析.22.1 系統設計目標.22.2 系統總體需求分析.32.3 組織結構的分析.32.3.1 開發運行環境.32.3.2 系統開發語言.43理論知識.43
10、.1 c/s 軟件架構技術.43.2 用戶數據報協議(udp) .43.3 單播、廣播、組播淺析.54系統設計.54.1 文字聊天模塊的整體構架.54.2 文件傳輸模塊的主要流程圖.64.3 系統的主要功能模塊.64.3.1 文字聊天的主登錄界面.64.3.2 文字聊天信息的封裝.94.3.3 聊天信息的加鎖.104.3.4 文件傳輸的界面.124.3.5 用戶密封或加鎖傳輸文件.155系統測試.175.1 測試環境.175.2 測試結果.17結 論.17參考文獻.18第 2 頁 共 20 頁1 1引言引言 1.11.1 課題背景課題背景當時間走向 21 世紀,當今時代也由工業經濟漸漸成為了知
11、識經濟、信息經濟的時代。信息的需求量的不停增加,促使了計算機通信的日新月異!雖然網絡的使用頻率與使用的范圍都越來越廣泛,但是人們使用的網絡的用途主要的還是只有兩個:(1)相互之間的溝通,(2)資源共享。局域網作為網絡的一個重要組成部分,它不但用戶與外界連接的樞紐,同時也是近距離用戶之間溝通與資源共享的一個重要途徑。在這種情況下,如何使局域網內的用戶便捷的勾通,以及快速的資源共享,也就成為了人們對網絡研究的重點之一。本系統仿飛鴿傳輸,是一個局域網內的通迅工具,主要通過 winsockt 完成。它據有的功能有:(1)局域網內用戶間簡單的文字聊天功能;(2)局域網內用戶間相互的文件、文件夾傳輸。1.
12、21.2 本課題主要研究背景本課題主要研究背景隨著計算機和通訊技術的發展,計算機的網絡化已經滲透到各個應用領域,尤其是以 tcp/ip 協議之間的網絡互連發展很快,計算機應用系統的開發由傳統的單機方式轉向到了網絡環境的開發。大部分編程語言都提供了基于 windowssockets 網絡編程接口的 win socket 控件,它使開發 tcp/ip 通訊變得簡單方便。網絡之間進行數據通訊時,使用地址來標識網絡中的計算機,有了地址以后,數據才會準確地發送到地址所指向的計算機。tcp/ip 協議使用 ip 地址為網絡中計算機的標識,而且每臺計算機的 ip 地址是唯一的,一般情況下,每臺計算機運行的程
13、序不止一個,因此要在應用程序中建立連接的話,還需要一個地址標識。在 tcp/ip 協議書中使用端口(port)作為計算機上運行的應用程序的標識,因此 tcp/ip 協議中一個有效的網絡地址包括 ip 地址和端口地址兩個部分。tcp/ip 協議提供了兩種計算機之間的通訊方式:tcp 方式和 udp 方式。tcp 是一種面向連接的服務,在文件傳輸時會先行建立連接,通過鏈接提供雙向、有序且無重復的數據流服務、以及流量控制、差錯檢測和糾錯等服務,從而確保文件傳輸的正確性;udp 則是一種無連接的服務,它在傳輸文件時不會確保傳輸端的文件能夠正確無誤的傳送到接收端,所以當使用 udp 時,通常要自己作接收
14、確認的工作。第 3 頁 共 20 頁1.31.3 本課題主要研究思路和方法本課題主要研究思路和方法本系統的開發采用基于 win socket 的廣播發送模式,進行文字聊天和文件、文件夾傳輸的設計與開發。因此,本設計首先分析該系統的相關功能,結合本設計的相關要求寫出需求分析;其次,綜合運用以前所學的相關知識,選擇所熟悉的開發工具進行本設計的開發;在設計中以需求分析為基礎,寫出系統開發計劃、實現流程及相關問題的實現方法;最后,在系統開發完畢后,進行調試和運行,做好調試和運行的相關記錄。1.41.4 研究項目的目的以及意義研究項目的目的以及意義隨著互聯網技術的迅猛發展,網絡給人們帶來了很多便利,比如
15、人們借助于網絡進行相互交流變得更加方便。聊天工具作為互聯網中運用最為廣泛的通信工具之一,如今都已被廣大網民接受。很多人都使用過飛鴿傳書軟件,飛鴿傳書發展到現在已經具有了很多功能:有文字聊天、文件、文件夾傳輸的基本功能,也有密封、加鎖等較為復雜的功能。本畢業設計的目的主要是為了檢查使學生綜合運用以前所學知識(包括以前所學的一些關于網絡、編程、信息安全等知識)的能力,模擬局域網飛鴿傳書軟件,開發一個天系統軟件,本畢業設計主要實現局域網內文字聊天及文件傳輸等功能。1.51.5 winwin socketsocket 的尋址方式的尋址方式因為 winsock 要兼容多個協議,所以必須使用通用的尋址方式
16、。tcp/ip使用地址和端口號來指定一個地址,但是其它協議也許采用不同的形式。如果winsock 強迫使用特定的尋址方式,添加其他協議就不大可能了。在 winsock中,應用程序員通過 sockaddr_in 結構來指定 ip 地址和端口號。定義如下:struct sockaddr_inshort sin_family;u_short sin_port;struct in_addr sin_addr;har sin_zero8;應用程序可以使用 inet_addr 函數將一個小數點分隔的十進制 ip 地址字符串轉化成由 32 位二進制數表示的 ip 地址。inet_ntoa 函數將一個網絡字節
17、順序的 32 位 ip 地址轉化字符串。注意:inet_addr 返回的 32 位二進制數是用網絡順序存儲的。第 4 頁 共 20 頁2 2系統需求分析系統需求分析2.12.1 系統設計目標系統設計目標根據對飛鴿傳輸系統的調研,我認為本設計需要滿足以下幾個系統設計目標:(1)實用性原則:真正為局域網的實際工作服務,按照需求的輕重緩急,合理設計本系統。(2)可靠性原則:必須為用戶提供安全的服務,尤其是要保證傳輸的穩定性。(3)友好性原則:使用本系統的用戶相當一部分對計算機知識了解很少,所以系統操作上要求簡單方便,便于用戶掌握。(4)可擴展性原則:采用開放的標準和接口,便于系統向更大的規模和功能擴
18、展。 2.22.2 系統總體需求分析系統總體需求分析根據用戶需求,本系統分為兩個子系統::局域網內簡單文字聊天子系統,它是在局域網內選擇相應的用戶,以便對之發送文字信息,:文件、文件夾傳輸系統,它是在先把需要傳輸的文件、文件夾轉換成相就的數據流傳關,到了目的主機再由之還原。本系統的文字聊天系統實現的功能類似于用戶之間的聊天。在設計系統時,應根據簡潔、流暢的特點安排布局,在編制程序時應充分考慮這一點傳輸的穩定、快捷,真正做到“簡潔、高效、流暢、安全”的使用環境。用戶使用的過程為,先是用戶登開啟本軟件,軟件自動檢索局域網的其它用戶,并以之成為用戶列表,讓用戶選擇。當用戶發現所要連接的用戶之后,雙擊
19、該用戶,則出現發送窗口。用戶用之來發送消息或者文件。接收方可以選擇接收或者拒絕相應的傳輸文件。2.32.3 組織結構的分析組織結構的分析以下為組織結構圖:圖 1 組織結構圖直接傳送發送端電腦選擇目標電腦連接后數據轉換加密傳送數據轉換目標主機第 5 頁 共 20 頁.1 開發運行環境開發運行環境開發此系統所需的基本軟、硬件環境為:(1).windows95、 windows98 或 windowsnt/2000/xp;(2).pentium100 及以上檔次的 ibm pc 及其兼容機;(3).128m 以上內存措施;(4).1g 以上可用硬盤空間;(5).vga 顯示器;以上的
20、配置均要求為在同一局域網內的兩臺或兩臺以上。.2 系統開發語言系統開發語言本系統采用 vc/vc+語言開發。vc/vc+是前些年迅速發展和推廣的一種計算機語言,近年來,已經相當的完善。它主要特點有兩個方面:一是全面兼容c,二是支持面向對向的方法。.3 3理論知識理論知識3.13.1 c/sc/s 軟件架構技術軟件架構技術c/s(client/server)結構,即大家熟知的客戶機/服務器結構。它是軟件系統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到client 端和 server 端來實現,降低了系統的通訊開銷。目前大多數應用軟件系統都是 client/se
21、rver 形式的兩層結構,由于現在的軟件應用系統正在向分布式的 web 應用發展,web 和 client/server 應用都可以進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展出新的應用系統。這也就是目前應用系統的發展方向。傳統的 cs 體系結構雖然采用的是開放模式,但這只是系統開發一級的開放性,在特定的應用中無論是 client 端還是 server 端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環境,c/s 結構的軟件需要針對不同的操作系統系統開發不同版本的軟件,加之產品的更新換代十分快,
22、已經很難適應百臺電腦以上局域網用戶同時使用。3.23.2 用戶數據報協議用戶數據報協議(udp)(udp)udp(user datagram protocol):用戶數據包協議,它和 tcp 一樣位于傳輸層,和 ip 協議配合使用,在傳輸數據時省去包頭,但它不能提供數據包的重傳,所以適合傳輸較短的文件。由于大多數網絡應用程序都在同一臺機器上運行,計算機上必須能夠確保目的地機器上的軟件程序能從源地址機器處獲得數據包,以及源計算機能收到第 6 頁 共 20 頁正確的回復。這是通過使用 udp 的“端口號”完成的。源端口號標識了請求域名服務的本地機的應用程序,同時需要將所有由目的站生成的響應包都指定
23、到源主機的這個端口上。與 tcp 不同,udp 并不提供對 ip 協議的可靠機制、流控制以及錯誤恢復功能等。由于 udp 比較簡單,udp 頭包含很少的字節,比 tcp負載消耗少,所以 udp 適用于不需要 tcp 可靠機制的情形,比如,當高層協議或應用程序提供錯誤和流控制功能的時候。udp 是傳輸層協議,服務于很多知名應用層協議,包括網絡文件系統(nfs) 、簡單網絡管理協議(snmp) 、域名系統(dns)以及簡單文件傳輸系統(tftp) 。3.33.3 單播、廣播、組播淺析單播、廣播、組播淺析硬件組播(multicasting)是一種多點投遞的形式,它使用硬件技術,通過使用大量組播地址來
24、通信。當某一組機器需要通信時,選擇一個組播地址,并配置好相應的網絡接口硬件,識別組播地址,從而收到該組播地址上分組的拷貝。廣播(broadcasting)是多點投遞的最普遍的形式,它向每一個目的站投遞一個分組的拷貝。它可以通過多個單次分組的投遞完成,也可以通過單獨的連接傳遞分組的拷貝,直到每個接收方均收到一個拷貝為止。在多數網絡中,用戶是通過把分組分送給一個特殊保留的地址即廣播地址(broadcast address)來進行廣播投遞,它的主要缺點是會耗費大量的主機資源和網絡資源。單播(unexacting)是指只有一個目的地的數據報傳遞。從投遞目的地的數量而言,單播和廣播均可看作是組播的一個子
25、集。單播可以看作僅包括一臺機器群組的組播;廣播可以看作包含了所有機器群組的組播。但從數據報的投遞方式而言,單播、廣播和組播還是有較大的區別。 4 4系統設計系統設計本系統主要分為文字聊天和文件傳書兩大部分。所以本論文將把系統分成兩大模塊來介紹。4.14.1 文字聊天模塊的整體構架文字聊天模塊的整體構架4.24.2 文件傳輸模塊的主要流程圖文件傳輸模塊的主要流程圖4.34.3 系統的主要功能模塊系統的主要功能模塊.1 文字聊天的主登錄界面文字聊天的主登錄界面.2 文字聊天信息的封裝文字聊天信息的封裝封裝是一種把多次聊天的的數據捆綁在一起,使這兩者不受外界干擾和誤用
26、的機制.封裝可被理解為一種用做保護的包裝器,以防止代碼和數據被包裝器外第 7 頁 共 20 頁部所定義的其他代碼任意訪問.對包裝器內部代碼與數據的訪問通過一個明確定義的接口來控制.封裝代碼的好處是每個人都知道怎樣訪問代碼,進而無需考慮實現細節就能直接使用它,同時不用擔心不可預料的副作用.用戶密封只需選擇 seal 選項,程序插件自動生成封裝功能。并且在聊天過程中,封裝的過程仍在持續,聊天的內容是邊封裝數據包邊傳輸。密封發送信息接收界面,如圖 6 所示圖 6 接收界面在點擊 open 后顯示信息。其中實現的主要代碼為:bool tapp:preprocmsg(msg *msg)/ for tra
27、nslateaccel & isdialogmessagefor (hwnd hwnd=msg-hwnd; hwnd != null; hwnd=:getparent(hwnd)twin*win = searchwnd(hwnd);if (win != null)returnwin-preprocmsg(msg);returnfalse;lresult callback tapp:winproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)第 8 頁 共 20 頁twin *win = searchwnd(hwnd);if (w
28、in)returnwin-winproc(umsg, wparam, lparam);if (win = prewnd) != null)prewnd = null;addwinbywnd(win, hwnd);returnwin-winproc(umsg, wparam, lparam);returndefwindowproc(hwnd, umsg, wparam, lparam);.3 聊天信息的加鎖聊天信息的加鎖加鎖名如其實,其作用主要在于使傳送的信息或者文件、文件夾只能給有password 的用戶看,從而加強了信息的安全程度。在現在這個網絡黑客泛濫的時代,為了保護信息的
29、隱私,加鎖就更加必要了。以下為加鎖信息的主要界面。在加鎖后的信息接收界面,如圖 7 所示:圖 7 聊天信息加鎖后界面點擊確定后顯示,如圖 8 所示:第 9 頁 共 20 頁圖 8 開鎖界面其中主要代碼為:bool tregistry:deletechildtree(lpstr subkey)charbuf100;bool ret = true;if (subkey != null & openkey(subkey) != true)returnfalse;while (enumkey(0, buf, sizeof(buf)if (ret = deletechildtree(buf) !
30、= true)break;if (subkey != null)closekey();ret = deletekey(subkey) ? ret : false;else while (enumvalue(0, buf, sizeof(buf)if (deletevalue(buf) != true)ret = false;第 10 頁 共 20 頁break;returnret;.4 文件傳輸的界面文件傳輸的界面與文字聊天一樣,系統的文件、文件夾傳輸模塊也盡量地要求簡單易行,便于操作。當然,作為文件的傳輸,速度和安全也就成為了重要的問題,系統的簡單加鎖能達到局域網較為單一的環
31、境要求。文件傳輸的過程中流程為首先客端的主機通過 tcp/ip 協議建立鏈接,然后客戶機發送套節字請求,通過 3 次握手連接響應,再轉換數據為 socket 流傳送,最近通過 3 次握手斷開連接響應。選擇用戶并拖入相應所要傳送的文件及文件夾,如圖 9 所示:圖 9 文件傳輸界面點擊所發送的文件為文件另存為,界面如圖 10 所示:第 11 頁 共 20 頁圖 10 選擇存儲路徑選擇路徑確定后,文件開始傳輸。其傳送界面,如圖 11 所示:圖 11 文件傳輸中實現的主要代碼為:void tsenddlg:initializeheader(void)intordermax_sendwidth;intr
32、evitemsmax_sendwidth;while (maxitems 0)senddlgitemmessage(host_list, lvm_deletecolumn, -maxitems, 0);columnitems = cfg-columnitems & (1 sendorder, sizeof(fullorder);for (int cnt=0; cnt max_sendwidth; cnt+) if (getitem(columnitems, cnt) itemsmaxitems = cnt;revitemscnt = maxitems+;intordercnt = 0;
33、for (cnt=0; cnt glidlinecheck)style |= lvs_ex_gridlines;elsestyle &= lvs_ex_gridlines;senddlgitemmessage(host_list, lvm_setextendedlistviewstyle, 0, style);static char*headerstrmax_sendwidth;.5 用戶密封或加鎖傳輸文件用戶密封或加鎖傳輸文件文件傳輸模塊實現主要依靠發送端與接收端建立有效的連接后,客戶端不斷地向 socket 寫入文件流,服務器端不斷接受來自客戶端的 socket 文件流。直到文件傳輸完畢關閉套節字連接并釋放空間。密封和加鎖主要是通過程序的插件對所傳送的文件加以密封,加密,以便確保文件的安全性。點擊 open (files)按鈕,界面如圖 12 所示:第 13 頁 共 20 頁圖 12 文件傳輸界面用戶接收到加鎖的文件圖 13 加鎖信息接收界面其中主要代碼為:bool tregistry:deletechildtree(lpstr subkey)charbuf100;bool ret = true;if (subkey != null & openkey(subkey) != tru
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《高中校園文化發展》課件
- 《會計實務手工操作》課件
- 《招聘的策略》課件
- 鐵路調車工作實訓無線調車燈顯設備課件
- 鐵路工程安全技術石家莊鐵路44課件
- 鐵路貨物運雜費保價費率相關規定課件
- 《GB 15562.1-1995環境保護圖形標志 排放口(源)》(2025版)深度解析
- 中世紀文化課件
- 股東資金借用合同范例
- 東陽木雕文化課件
- 行政事業單位內部控制制度之合同管理制度
- 大學生心理健康與發展學習通超星期末考試答案章節答案2024年
- 《平行四邊形》全章復習教學設計
- (新版)高級考評員職業技能鑒定考試題庫(含答案)
- 藥劑科考試試題
- 2024年中國醫養及康復醫療產業發展研究報告
- 《人工智能基礎》課件-AI的前世今生:她從哪里來
- 扎實推動科技創新和產業創新深度融合
- 聲紋鑒定知識考核試題
- 養殖業勞動合同樣本
- 保險公司增額終身壽主講課件
評論
0/150
提交評論