基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文

上傳人:good****022 文檔編號:116648091 上傳時間:2022-07-06 格式:DOC 頁數(shù):28 大?。?84.50KB
收藏 版權(quán)申訴 舉報 下載
基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文_第1頁
第1頁 / 共28頁
基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文_第2頁
第2頁 / 共28頁
基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文_第3頁
第3頁 / 共28頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文》由會員分享,可在線閱讀,更多相關(guān)《基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn)基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計與實現(xiàn) 摘摘 要要 網(wǎng)絡(luò)通訊在當今已經(jīng)不算新鮮事物,但大多數(shù)網(wǎng)絡(luò)通訊都需要借助 Internet 上的服務(wù)器,這就給那些具有大規(guī)模內(nèi)部網(wǎng)絡(luò)的用戶造成了許多問題, 如浪費網(wǎng)絡(luò)資源、遭遇到網(wǎng)絡(luò)攻擊、傳播的病毒、破壞防御系統(tǒng)等等。由于互 連網(wǎng)上的網(wǎng)絡(luò)通訊工具給企業(yè)內(nèi)部信息交流帶來了不便,所以為了方便內(nèi)部網(wǎng) 絡(luò)的用戶之間的溝通,需要開發(fā)一個基于局域網(wǎng)的信息收發(fā)系統(tǒng)的即時通訊工 具,實現(xiàn)在內(nèi)部網(wǎng)絡(luò)中進行信息的交流。本課題設(shè)計主要針對局域網(wǎng)通訊而開 發(fā)設(shè)計的,采用的是 C/S 構(gòu)架,利用 Delphi 編程工具來實現(xiàn)單播、廣播以及在 線用戶

2、顯示和查看歷史記錄的功能,并借助一些網(wǎng)絡(luò)通訊組件,成功的實現(xiàn)了 在局域網(wǎng)上的即時通訊。本論文共分為六部分。第一部分是課題的背景及研究 意義;第二部分是所運用的理論基礎(chǔ)知識;第三部分是本系統(tǒng)的需求分析;第 四部分是系統(tǒng)結(jié)構(gòu)和模塊設(shè)計;第五部是實施和測試情況;最后是本設(shè)計的結(jié) 論總結(jié)及部分參考文獻。 關(guān)鍵詞關(guān)鍵詞:即時通訊;C/S 構(gòu)架;單播;廣播;歷史記錄 The Design and Implementation of Receiving and Sending Information System Based On LAN Abstract The network communication

3、 in already did not calculate the new things now, but the majority network communication all needed to draw support from on Internet the server, this gave these to have the large-scale internal network user to create many problems, like waste network resources, bitter experience to network attack, d

4、issemination virus, destruction defense system and so on. Because on the interconnection network communication facilities the interior communication have brought inconveniently for the enterprise, therefore in order to facilitate internal network between users communication, needs to develop one bas

5、ed on the local area network information receiving and dispatching system instant message facilities, realizes carries on the information in the internal network the exchange. This topic design mainly aims at the local area network communication to develop the design, uses is the C/S structure, real

6、izes the unicast, the broadcast as well as the online user demonstration and the examination historic record function using the Delphi programming tool, and drew support from some network communication module, the success realization on the local area network instant message. The present paper altog

7、ether divides into six parts. The first part is the topic background and the research significance; the second part is the rationale knowledge which utilizes; the third part is this system demand analysis; the fourth part is the system structure and the module design; fifth is the implementation and

8、 the test situation; finally is this design conclusion summary and the part reference. Key words: Instant message; C/S structure; Unicast; Broadcast; Historic record 目目 錄錄 論文總頁數(shù):25 頁 1引言1 1.1課題的背景1 1.2國內(nèi)外研究現(xiàn)狀1 1.3本課題研究的意義2 2理論基礎(chǔ)2 2.1C/S 軟件架構(gòu)技術(shù) 2 2.2用戶數(shù)據(jù)報協(xié)議(UDP).3 2.3單播(UNICAST)3 2.4廣播(BROADCAST) 4 3

9、需求分析5 3.1現(xiàn)行業(yè)務(wù)系統(tǒng)描述5 3.2現(xiàn)行系統(tǒng)存在的主要問題分析5 3.3提出解決方案6 4系統(tǒng)設(shè)計6 4.1系統(tǒng)總體架構(gòu)6 4.2界面設(shè)計7 4.3系統(tǒng)功能模塊設(shè)計9 4.3.1網(wǎng)絡(luò)組件 .9 4.3.2用戶信息顯示功能 10 4.3.3局域網(wǎng)內(nèi)實現(xiàn)單播功能 14 4.3.4局域網(wǎng)內(nèi)實現(xiàn)廣播功能 17 4.3.5歷史信息記錄功能 17 5系統(tǒng)實施及測試.18 5.1實施概況.18 5.2測試方案.19 5.3測試結(jié)果.21 結(jié) 論.22 參考文獻.22 致 謝.24 聲 明.25 第 1 頁 共 25 頁 1 1引言引言 1.11.1課題的背景課題的背景 隨著計算機網(wǎng)絡(luò)日新月異的發(fā)展,

10、人們的交流方式越來越多,傳統(tǒng)的交流 方式,如:信件、電報、電話等已經(jīng)難以滿足人們的交流要求,在互聯(lián)網(wǎng)上即 時的和好友取得聯(lián)系,已經(jīng)成為當今社會人們主流的聯(lián)系方式。因此,計算機 之間進行即時通訊、發(fā)送文件等交流方式已經(jīng)成為必然潮流。因此出現(xiàn)了 QQ、UC 等聊天工具,然而 QQ、UC 等聊天工具雖然方便、實用,但是,娛樂功 能太多,有很多吸引人的娛樂功能,從一定程度上來說,是一種娛樂工具,不 能作為用于即時通訊、文件共享的專用工具。目前,用于實現(xiàn)單一的即時通訊、 文件共享的軟件實在太少,而且它們中大部分都對遠程服務(wù)器有非常大的依賴 性,沒有徹底實現(xiàn)點對點的交流。為此,我們決定開發(fā)一個專用于實現(xiàn)基

11、于局 域網(wǎng)內(nèi)部計算機之間即時通訊、文件傳輸?shù)能浖?,以方便?nèi)網(wǎng)計算機之間信息 的交流。本軟件屬于點對點連接的,在連接并通信時,尤其是近程的即時通訊, 徹底的脫離了遠程的服務(wù)器,避免了和遠程服務(wù)器連接時過多的浪費網(wǎng)絡(luò)資源。 并且避免了服務(wù)器忙或與服務(wù)器無法連接時,浪費過多時間用于和服務(wù)器建立 連接。因此,這個軟件是極具適應(yīng)性和實用性的即時通訊軟件。 1.21.2國內(nèi)外研究現(xiàn)狀國內(nèi)外研究現(xiàn)狀 即時通訊的出現(xiàn)和互聯(lián)網(wǎng)有著密不可分的關(guān)系,從技術(shù)上來說,IM 完全基 于 TCP/IP 網(wǎng)絡(luò)協(xié)議族實現(xiàn),而 TCP/IP 協(xié)議族是整個互聯(lián)網(wǎng)得以實現(xiàn)的技術(shù)基 礎(chǔ),最早期的即時通訊雛形可以追溯到芬蘭人 Jarkk

12、o Oikarinen 于 1988 年發(fā) 明的一種網(wǎng)絡(luò)聊天協(xié)議 IRC(Internet Relay Chat) ,該協(xié)議僅支持文本聊天, 并且也不支持好友列表的概念,1996 年第一個 IM 產(chǎn)品 ICQ 發(fā)明后,即時通訊 的技術(shù)和功能開始基本成型,其工作原理開始被人們所了解,但不同廠商實現(xiàn) 即時通訊技術(shù)原理時采用的協(xié)議卻有較大的差異,甚至到目前為止世界主要的 IM 服務(wù)運營商 AOL(American Online:美國在線)仍然沒有公布其主要即時通訊 產(chǎn)品 AIM(American Instant Messenger)的專用協(xié)議。從 1997 年第一代即時 通訊軟件誕生后發(fā)展到現(xiàn)在,即

13、時通訊行業(yè)先后經(jīng)歷了文本通信(第一代) 、語 音交流(第二代) 、視頻交流(第三代)和跨網(wǎng)溝通(第四代)等多種信息傳遞 技術(shù)變革。盡管第一代、第二代以及第三代即時通訊軟件的信息傳遞主要在互 聯(lián)網(wǎng)范圍內(nèi),但各個階段都可以看到即時通訊行業(yè)在跨網(wǎng)通訊領(lǐng)域中的應(yīng)用, 在移動即時信息進一步深化應(yīng)用,跨網(wǎng)語音交流進一步加強,跨網(wǎng)通訊領(lǐng)域的 進一步拓寬,都意味著真正意義的跨網(wǎng)即時通訊已發(fā)展成型??梢哉f跨網(wǎng)即時 通訊應(yīng)用的萌芽、雛形以及誕生,都貫穿著整個行業(yè)的發(fā)展。而在過去的幾年, 第 2 頁 共 25 頁 行業(yè)的主導服務(wù)商騰訊在香港成功上市,并在當年取得 55%的收入增長的佳績。 新浪斥資近兩億元收購 UC

14、 即時通訊技術(shù)平臺,微軟的 MSN 加大了中國市場的攻 勢,TOM-SKYPE 高調(diào)推出。即時通信行業(yè)出現(xiàn)了連續(xù)多年高速的增長。 1.31.3本課題研究的意義本課題研究的意義 隨著現(xiàn)代通訊技術(shù)不斷的發(fā)展,即時通訊技術(shù)也有飛速的發(fā)展,它是一種 使人們能在網(wǎng)上識別在線用戶并與他們實時交換消息的技術(shù),被很多人稱為電 子郵件發(fā)明以來最酷的在線通訊方式。但是為了提高通訊的質(zhì)量,很多企業(yè)在 網(wǎng)絡(luò)上進行即時通訊時一般都不會采用 Internet 上的即時通訊軟件,如 QQ、MSN、OICQ 等。因此本課題主要是研究基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設(shè)計 與實現(xiàn),希望能通開發(fā)設(shè)計的局域網(wǎng)通訊軟件來方便在內(nèi)部網(wǎng)絡(luò)上的信

15、息交流, 這樣不緊提高了通訊的質(zhì)量,還能有效的防護在互連網(wǎng)上帶來的攻擊,對于那 些大中型企業(yè)來說更是需要這樣的一個自己內(nèi)部的即時通訊工具,避免帶來工 作效率上不去;病毒及木馬的感染率增大;遠程服務(wù)器連接時過多的浪費網(wǎng)絡(luò) 資源;互連網(wǎng)由于某種原因而斷開時造成通訊中斷等問題。 2 2理論基礎(chǔ)理論基礎(chǔ) 2.12.1C/SC/S 軟件架構(gòu)技術(shù)軟件架構(gòu)技術(shù) C/S(Client/Server)結(jié)構(gòu),即大家熟知的客戶機和服務(wù)器結(jié)構(gòu)。它是軟 件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配 到 Client 端和 Server 端來實現(xiàn),降低了系統(tǒng)的通訊開銷。目前大多數(shù)應(yīng)用軟 件系統(tǒng)都是

16、 Client/Server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向 分布式的 Web 應(yīng)用發(fā)展,Web 和 Client/Server 應(yīng)用都可以進行同樣的業(yè)務(wù)處 理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新 的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴展出新的應(yīng)用系統(tǒng)。 這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。 傳統(tǒng)的 C/S 體系結(jié)構(gòu)雖然采用的是開放模式,但這只是系統(tǒng)開發(fā)一級的開 放性,在特定的應(yīng)用中無論是 Client 端還是 Server 端都還需要特定的軟件支 持。由于沒能提供用戶真正期望的開放環(huán)境,C/S 結(jié)構(gòu)的軟件需要針對不同的 操作系統(tǒng)系統(tǒng)開發(fā)不同

17、版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適 應(yīng)百臺電腦以上局域網(wǎng)用戶同時使用。 第 3 頁 共 25 頁 圖 1 客戶機/服務(wù)器計算結(jié)構(gòu) 2.22.2用戶數(shù)據(jù)報協(xié)議(用戶數(shù)據(jù)報協(xié)議(UDPUDP) 用戶數(shù)據(jù)報協(xié)議(UDP)是 ISO 參考模型中一種無連接的傳輸層協(xié)議,提供 面向事務(wù)的簡單不可靠信息傳送服務(wù)。UDP 協(xié)議基本上是 IP 協(xié)議與上層協(xié)議的 接口。UDP 協(xié)議適用端口分辨運行在同一臺設(shè)備上的多個應(yīng)用程序。 由于大多數(shù)網(wǎng)絡(luò)應(yīng)用程序都在同一臺機器上運行,計算機上必須能夠確保 目的地機器上的軟件程序能從源地址機器處獲得數(shù)據(jù)包,以及源計算機能收到 正確的回復。這是通過使用 UDP 的“

18、端口號”完成的。源端口號標識了請求域 名服務(wù)的本地機的應(yīng)用程序,同時需要將所有由目的站生成的響應(yīng)包都指定到 源主機的這個端口上。與 TCP 不同,UDP 并不提供對 IP 協(xié)議的可靠機制、流控 制以及錯誤恢復功能等。由于 UDP 比較簡單,UDP 頭包含很少的字節(jié),比 TCP 負載消耗少,所以 UDP 適用于不需要 TCP 可靠機制的情形,比如,當高層協(xié)議 或應(yīng)用程序提供錯誤和流控制功能的時候。UDP 是傳輸層協(xié)議,服務(wù)于很多知 名應(yīng)用層協(xié)議,包括網(wǎng)絡(luò)文件系統(tǒng)(NFS) 、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP) 、域名系 統(tǒng)(DNS)以及簡單文件傳輸系統(tǒng)(TFTP) 。 2.32.3單播(單播(Unic

19、astUnicast) 單播(Unicast)指網(wǎng)絡(luò)中從源向目的地轉(zhuǎn)發(fā)單播流量的過程。單播流量地 址唯一。單播方式下,只有一個發(fā)送方和一個接收方。與之比較,組播是指單 個發(fā)送方對應(yīng)一組選定接收方的一種通信,任意播是指任意發(fā)送方對應(yīng)一組較 為接近的接收方間的一種通信。早期的點對點通信含義類似于單播。 單播傳輸是 LANs 傳輸中的主要使用方式。所有 LANs(如以太網(wǎng))和 IP 網(wǎng)絡(luò)都支持單播傳輸模式,并且大多數(shù)用戶都了解標準單播應(yīng)用程序,如: 第 4 頁 共 25 頁 http、smtp、ftp 和 telnet 都作為 TCP 傳輸協(xié)議。新版本的網(wǎng)際協(xié)議第 六版(IPv6)支持單播同時也支持

20、任意播和組播類型。許多路由選擇協(xié)議如路 由選擇信息協(xié)議(RIP)和開放最短路徑優(yōu)先(OSPF) ,都支持高效 Internet 單播路由選擇過程。 而 IPv6 支持單播(Unicast) 、組播(Multicast)和任意播(Anycast) 三種類型。IPv6 中沒有關(guān)于廣播(Broadcast)的具體劃分,而是作為組播的 一個典型類型。 圖 2 單播物理結(jié)構(gòu)圖 2.42.4廣播(廣播(BroadcastBroadcast) 網(wǎng)絡(luò)廣播是指一個節(jié)點同時向相同域中的其它所有節(jié)點傳輸數(shù)據(jù)包的過程。 組播是一種特殊的廣播,其中一組請求收聽的選定用戶將收到廣播。廣播傳輸 通常在局域網(wǎng)(如以太網(wǎng))中進

21、行,但有時也發(fā)生在虛擬局域網(wǎng)(VLAN)中。 IPv6 支持單播(Unicast) 、組播(Multicast)以及任意播(Anycast)三種類 型,IPv6 中沒有關(guān)于廣播(Broadcast)的具體劃分,而是作為組播的一個典 型。 生成廣播信息的應(yīng)用程序包括地址解析協(xié)議(ARP) 。通過該協(xié)議,主機發(fā) 送一個地址解析查詢到局域網(wǎng)中的所有計算機上,以實現(xiàn)網(wǎng)絡(luò) IP 地址的分配。 有些路由選擇協(xié)議,如 RIP,主要用于支持網(wǎng)絡(luò)設(shè)備“Advertise”網(wǎng)絡(luò)服務(wù)。 網(wǎng)絡(luò)廣播中涉及以下重要概念: 廣播域(Broadcast Domain):這是一個限定區(qū)域,其中的所有設(shè)備都可 以共享信息。換句話

22、說,與網(wǎng)絡(luò)相連,且負責接收廣播的所有設(shè)備都是同一廣 播域的一部分。在一個共享以太網(wǎng)中,工作站通過共享媒體將幀廣播到其它所 有節(jié)點。其它節(jié)點收聽廣播,只接收尋址到它們的幀。因此,共享以太網(wǎng)中的 第 5 頁 共 25 頁 所有節(jié)點都屬于同一廣播域。此外通過虛擬局域網(wǎng)技術(shù)可以創(chuàng)建一個虛擬廣播 域。 廣播地址(Broadcast Address):這是一個特殊地址,當數(shù)據(jù)包可以尋址 到該地址時,可以幫助所有設(shè)備打開和處理信息。例如,MAC 地址,格式為 1xFFFFFFFF 是一種廣播地址;IP 地址 255.255.255.255 是通用廣播地址。任 何設(shè)備都將打開尋址到廣播地址的信息,并將它們傳送

23、到下一個工作站。 廣播風暴(Broadcast Storm):當主機系統(tǒng)響應(yīng)一個在網(wǎng)上不斷循環(huán)的廣 播數(shù)據(jù)包或者試圖響應(yīng)一個沒有應(yīng)答的系統(tǒng)時就會發(fā)生廣播風暴。隨著網(wǎng)絡(luò)數(shù) 據(jù)包數(shù)量的增加,廣播風暴可能會引起網(wǎng)絡(luò)擁塞問題。為防止廣播風暴的發(fā)生, 需要細心配置網(wǎng)絡(luò)以阻止非法廣播信息的進入。 圖 3 廣播物理結(jié)構(gòu)圖 3 3需求分析需求分析 3.13.1現(xiàn)行業(yè)務(wù)系統(tǒng)描述現(xiàn)行業(yè)務(wù)系統(tǒng)描述 隨著計算機網(wǎng)絡(luò)日新月異的發(fā)展,人們的交流方式越來越多,傳統(tǒng)的交流 方式如:信件、電報、電話等已經(jīng)難以滿足人們的交流要求,在互聯(lián)網(wǎng)上即時 的和好友取得聯(lián)系,已經(jīng)成為當今社會人們主流的聯(lián)系方式。兩臺計算機之間 進行即時通訊、

24、發(fā)送文件等交流方式已經(jīng)成為時代的潮流。因此出現(xiàn)了 QQ、UC 等即時通訊工具。這些即時通訊業(yè)務(wù)屬于基礎(chǔ)語音業(yè)務(wù)外的數(shù)據(jù)增值類業(yè)務(wù), 從范疇來講屬于“消息類”業(yè)務(wù),本質(zhì)是完成對“文字、聲音、圖像”信息的 傳遞。同屬于消息類的業(yè)務(wù)還有短信、彩信等,他們之間都存在一定程度的替 代性,同時又各有長短。但不會成為那些大中型企業(yè)內(nèi)部的主要通訊工具,在 企業(yè)中要求很簡單,能確??焖僬5募磿r通訊,還要具有很好的安全性,這 樣才能提高工作效率,增加企業(yè)的效益。 第 6 頁 共 25 頁 3.23.2現(xiàn)行系統(tǒng)存在的主要問題分析現(xiàn)行系統(tǒng)存在的主要問題分析 目前,像 QQ、UC 等即時通訊工具雖然方便、實用,但是,

25、娛樂功能太多, 有很多吸引人的娛樂功能,從一定程度上來說,是一種娛樂工具,不能作為用 于作為即時通訊、文件共享的專用工具。并且現(xiàn)在用于實現(xiàn)單一的即時通訊、 文件共享的軟件真的實在太少,因此不能為那些大中型企業(yè)所使用,而且在現(xiàn) 行的系統(tǒng)中主要的問題是:一、在即時通訊系統(tǒng)中由于防火墻、網(wǎng)絡(luò)速度等原 因難以建立或者速度很慢,IM 服務(wù)器還提供消息中轉(zhuǎn)服務(wù),即時消息全部先發(fā) 送到 IM 服務(wù)器,還要再由服務(wù)器轉(zhuǎn)發(fā)給對方,所以連接時過多的浪費了網(wǎng)絡(luò)資 源,并且在服務(wù)器忙或與服務(wù)器無法連接時,浪費過多時間用于和服務(wù)器建立 連接;二、即時通訊工具始終是通過互連網(wǎng)的服務(wù)器來傳輸?shù)?,正是這樣所以 更有可能會帶來

26、遭遇到網(wǎng)絡(luò)上的許多攻擊,如木馬,蠕蟲等。為企業(yè)中的信息 交流帶來了很大的安全性問題。 3.33.3提出解決方案提出解決方案 根據(jù)企業(yè)在內(nèi)部網(wǎng)絡(luò)上信息交流的需求,所以本課題就主要針對內(nèi)部的網(wǎng) 絡(luò)來設(shè)計這樣的一個即時通訊系統(tǒng),本系統(tǒng)是在基于局域網(wǎng)的在 IM 客戶端和 IM 服務(wù)器之間通訊采用的 UDP 協(xié)議和 C/S 軟件構(gòu)架技術(shù)上開發(fā)的通訊工具,它 在近程的即時通訊時徹底的脫離了遠程的服務(wù)器,不通過遠程服務(wù)器來完成實 現(xiàn)通訊,避免了和遠程服務(wù)器連接時過多的浪費網(wǎng)絡(luò)資源。并且避免了服務(wù)器 忙或與服務(wù)器無法連接時浪費過多時間用于和服務(wù)器建立連接,同時也為內(nèi)網(wǎng) 服務(wù)增強了許多的安全性,徹底的將通訊工具

27、從互連網(wǎng)上搬到內(nèi)網(wǎng)中來,這樣 一來就不會受到來自互連網(wǎng)的攻擊了。這種系統(tǒng)主要是為了方便了大中型企業(yè) 在內(nèi)部即時通訊要求,從而進一步提高工作效率,增加企業(yè)的效益。 4 4系統(tǒng)設(shè)計系統(tǒng)設(shè)計 4.14.1系統(tǒng)總體架構(gòu)系統(tǒng)總體架構(gòu) 本系統(tǒng)主要是采用 C/S 結(jié)構(gòu),并且每個客戶端也是作為服務(wù)器端的,當系 統(tǒng)發(fā)送信息給局域網(wǎng)的用戶,主要由單播模塊和廣播模塊來實現(xiàn),而其中的單 播模塊和用戶信息模塊是具有依賴性的,在接收信息的時候又有兩個模塊來完 成,一是信息接收的模塊,另一個是信息查看的模塊。 由此可以看出本系統(tǒng)主要分為兩大部分模塊:發(fā)送模塊和接收模塊。發(fā)送 模塊:單播模塊,廣播模塊,用戶信息模塊,信息記錄

28、模塊接收模塊:接收信 息模塊,查看信息模塊 有了以上的了解了那讓我們來看看系統(tǒng)的架構(gòu)圖: 第 7 頁 共 25 頁 圖 4 系統(tǒng)架構(gòu)圖 4.24.2界面設(shè)計界面設(shè)計 為了方便用戶的操作,我采用比較簡單的界面設(shè)計,主界面包括廣播按鈕、 發(fā)送按鈕、刷新按鈕、在線用戶顯示框、信息輸入窗體。其中廣播按鈕是將信 息窗體中的內(nèi)容發(fā)送到所有的用戶;發(fā)送按鈕是將信息窗體中的內(nèi)容發(fā)送到指 定的用戶;在線用戶顯示框中選取指定的用戶和查看用戶的信息;刷新是重載 用戶列表。 系統(tǒng)主界面 (服務(wù)器/客戶) 單 播 發(fā) 送 廣 播 發(fā) 送 接 收 信 息 顯示用戶信息 信 息 寫 入 查看歷史記錄 工 作 組 IP 地

29、址 用 戶 名 第 8 頁 共 25 頁 圖 5 主界面 當有信息傳過來時將自動彈出一個信息接收的窗體,窗體包括查看按鈕和 關(guān)閉按鈕還有一個顯示對方用戶的區(qū)域,他們分別是用來打開并查看信息或是 不想查看而關(guān)閉的作用。 圖 6 信息接收界面 如過你在圖 6 中點擊了查看按鈕,那么將會彈到顯示信息查看的窗體上, 在文本區(qū)則會顯示對方傳送過來的信息內(nèi)容,在查看了之后有個關(guān)閉按鈕,用 來結(jié)束對話框,便可以回到圖 5 的界面了。 第 9 頁 共 25 頁 圖 7 信息查看界面 在歷史記錄的窗體中點擊記錄文件按鈕來選擇保存的路徑,將會自動生成 一個文本文件來對通訊記錄進行保存。 圖 8 歷史記錄 4.34

30、.3系統(tǒng)功能模塊設(shè)計系統(tǒng)功能模塊設(shè)計 4.3.14.3.1 網(wǎng)絡(luò)組件網(wǎng)絡(luò)組件 UDP 協(xié)議由 TCP 協(xié)議衍生而來。TCP 用于確保點對點的連接,而 UDP 并不保 證發(fā)送的數(shù)據(jù)一定到達,也不表明數(shù)據(jù)報的傳輸成功或失敗。 本系統(tǒng)設(shè)計使用的是 TIdUDPClient 和 TIdUDPServer 兩個用戶數(shù)據(jù)報 (UDP)組件,首先創(chuàng)建 Delphi 工程。然后向工程組再添加一個工程。把一個 工程作為客戶,另一個作為服務(wù)器。為連接到 UDP 服務(wù)器,需要一個 TIdUDPClient 組件。用來表示服務(wù)器的 IP 地址和端口號。由于 UDP 是無連接 的,因此在 UDP 的接口方法中不包括 C

31、onnect 方法。要使用 Internet Direct 實現(xiàn)的組件,只需使用 Send 向給定的 IP 地址和端口號廣播一個命令字符串。 其中我為 IP 地址和端口號的設(shè)置分別為 127.0.0.1 和 9000。服務(wù)器是作 為應(yīng)用程序?qū)崿F(xiàn)的,它對客戶程序發(fā)出的一個簡單的命令集進行響應(yīng)。為實現(xiàn) 第 10 頁 共 25 頁 服務(wù)器,程序?qū)⒈O(jiān)聽 DefaultPort 端口上的廣播,并將 TIdUDPServer.Active 設(shè)置為 True。 下面是我對 TIdUDPClient 和 TIdUDPServer 組件的設(shè)置圖: 圖 9 TIdUDPClient 組件設(shè)置 圖 10 TIdUD

32、PServer 組件設(shè)置 4.3.24.3.2 用戶信息顯示功能用戶信息顯示功能 為了方便用戶選取單個用戶進行信息發(fā)送和查看在線用戶的信息,所以設(shè) 計了一個 ListView 來進行顯示如圖 5,在 ListView 中包括了用戶名、工作組、 IP 地址。當有用戶打開本系統(tǒng)的時候?qū)蚓钟蚓W(wǎng)中的所有用戶發(fā)送一個握手 信息來獲取網(wǎng)絡(luò)中的在線用戶信息并添加到列表中顯示出來,同時也把自己的 網(wǎng)絡(luò)資源信息發(fā)送給對方,使自己被添加到其他用戶的列表中。 其中分別要對網(wǎng)絡(luò)中的所有的用戶名、工作組、IP 地址進行獲取,下面來 看一下對于獲取這些網(wǎng)絡(luò)資源的代碼部分。 1) 用戶名獲取代碼如下: Function

33、 tform1.GetUsers( GroupName : string;List : TStringList) : Boolean; type TNetResourceArray = TNetResource; /網(wǎng)絡(luò)類型的數(shù)組 Var NetResource: TNetResource; Buf: Pointer; Count,BufSize,Res: DWord; lphEnum: THandle; Ind: Integer; Temp: TNetResourceArray; TmpStr:String; 第 11 頁 共 25 頁 Begin Result := False; Fill

34、Char(NetResource, SizeOf(NetResource), 0); /初始化網(wǎng)絡(luò)層次信息 NetResource.lpRemoteName := GroupName1; /指定工作組名稱 NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;/類型為服務(wù)器(工作組) NetResource.dwUsage := RESOURCEUSAGE_CONTAINER; /已連接機器 NetResource.dwScope := RESOURCETYPE_DISK; /列舉文件資源信息 /獲取指定工作組的網(wǎng)絡(luò)資源句柄 Res :

35、= WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, NetResource,lphEnum); If Res NO_ERROR) then Exit; /執(zhí)行失敗 Temp := TNetResourceArray(Buf); For Ind := 0 to Count - 1 do /列舉工作組的計算機名稱 Begin /獲取工作組的計算機名稱 tmpStr:=Temp.lpRemoteName; Delete(tmpstr,1,2); Form1.ListBox1.Items.Add

36、(tmpStr); list.Add(tmpstr); Inc(Temp); end; end; Res := WNetCloseEnum(lphEnum);/關(guān)閉一次列舉 If Res NO_ERROR then break;/執(zhí)行失敗 while true do/列舉一個網(wǎng)絡(luò)類型的所有工作組的信息 begin Count := $FFFFFFFF; /不限資源數(shù)目 BufSize := 8192; /緩沖區(qū)大小設(shè)置為 8K GetMem(Buf, BufSize); /申請內(nèi)存,用于獲取工作組信息 /獲取一個網(wǎng)絡(luò)類型的文件資源信息 Res := WNetEnumResource(lphEn

37、um, Count, Pointer(Buf), BufSize); if ( Res = ERROR_NO_MORE_ITEMS ) /資源列舉完畢 or (Res NO_ERROR then break; /執(zhí)行失敗 end; Result := True; FreeMem(Buf); NetworkTypeList.Destroy; end; 第 13 頁 共 25 頁 3) IP 地址獲取代碼如下: procedure TForm1.ServerUDPRead(Sender: TObject; AData: TStream;ABinding: TIdSocketHandle); var

38、 readbuf:array02030of char; msg,head,recvip,recvname,recvworkgroup,recvmsg,memo:string; recvport:integer; f:textfile; begin ZeroMemory(readbuf0,2030); adata.Read(readbuf,sizeof(readbuf); msg:=Trim(String(Pchar(Readbuf0); /memo1.Lines.Add(msg); head:=trim(copy(msg,1,headlen); /添加對方 IP 1.返回對方 IP 2. 發(fā)出

39、 Hand 握手信息 if head=LOGIN then begin recvip:=abinding.PeerIP; recvport:=9000; / memo1.Lines.Add(login recv+recvip+inttostr(recvport); recvname:=copy(msg,headlen+1,namelen); recvworkgroup:=copy(msg,headlen+namelen+1,length(msg); adduser(recvname,recvworkgroup,recvip,recvport); handdata(recvip,myname,m

40、yworkgroup,recvport); end; /添加對方返回的自己的 ip (對比) if head=REVLOGthen begin / memo1.Lines.Add(revlog recv); RECVPORT:=strtoint(copy(msg,headlen+1,portlen); recvip:=copy(msg,headlen+portlen+1,iplen); recvlog(recvip,recvport); end; 第 14 頁 共 25 頁 4.3.34.3.3 局域網(wǎng)內(nèi)實現(xiàn)單播功能局域網(wǎng)內(nèi)實現(xiàn)單播功能 在本設(shè)計中單播發(fā)送的按鈕為 BitBtn2,主要是通過

41、IdUDPServer 和 IdUDPClient 組件來編寫的,由 client.SendBuffer 語句來發(fā)送的,主要是對 局域網(wǎng)內(nèi)部的同一工作組用戶發(fā)送信息。 下面是發(fā)送按鈕的代碼部分: procedure TForm1.BitBtn2Click(Sender: TObject); var /myinfobuf:array01023of char; _ToPORT:integer; chatinfo,_ToIP,savelog:string; chatinfobuf:array02030of char; tempItem:TListItem; f:textfile; /處理握手信息 添

42、加對方 ip 返回對方 ip if head=HANDthen Begin / memo1.Lines.Add(hand recv); RECVNAME:=COPY(msg,headlen+1,namelen); recvworkgroup:=copy(msg,headlen+namelen+1,workglen); recvip:=abinding.PeerIP; recvport:=9000; recvp2pdata(recvip,recvname,recvworkgroup,recvport); end; /處理握手信息 添加對方 ip 返回對方 ip if head=HANDthen

43、Begin / memo1.Lines.Add(hand recv); RECVNAME:=COPY(msg,headlen+1,namelen); recvworkgroup:=copy(msg,headlen+namelen+1,workglen); recvip:=abinding.PeerIP; recvport:=9000; recvp2pdata(recvip,recvname,recvworkgroup,recvport); end; 第 15 頁 共 25 頁 由于是單播所以需要指定用戶,而用戶是由 ListView 中顯示的,則要對其 進行顯示并能選取,通過客服端來讓主機服務(wù)

44、器響應(yīng),實現(xiàn)代碼主要如下: Function tform1.recvp2pdata(recvip,recvname,recvworkgroup:string;recvport:integer):string; var minfobuf:array01023of char; minfo:string; tempitem:tlistitem; i,j:integer; begin j:=0; for i:=0 to userlist.Items.Count-1 do begin if userlist.Items.Itemi.Captionmyname then inc(j,1); if j=us

45、erlist.Items.Count then 第 17 頁 共 25 頁 IP 地址進行顯示;由工作組進行顯示,最后連接到表 Label2 中去。 4.3.44.3.4 局域網(wǎng)內(nèi)實現(xiàn)廣播功能局域網(wǎng)內(nèi)實現(xiàn)廣播功能 在本設(shè)計中單播發(fā)送的按鈕為 BitBtn3,主要是通過 IdUDPServer 和 IdUDPClient 組件來編寫的,主要是使用了 client.Broadcast 來對信息進行發(fā) 送的,在發(fā)送時將會把信息發(fā)送給在局域網(wǎng)內(nèi)部的所有用戶包括自己。 下面是發(fā)送按鈕的代碼部分: 4.3.54.3.5 歷史信息記錄功能歷史信息記錄功能 為了能讓用戶對歷史的信息進行查看,所以本設(shè)計中包含了

46、一個對歷史信 procedure TForm1.BitBtn3Click(Sender: TObject); var chatinfo:string; chatinfobuf:array02030of char; f:textfile; begin chatinfo:=format(%-6s%-255s%-1024s,CHAT,myname,memo1.Lines.Text); strpcopy(chatinfobuf,chatinfo); client.Broadcast(chatinfobuf,9000); end; begin tempItem:=UserList.Items.Add ;

47、 tempItem.Caption:=myname; if form5.checkbox1.Checked then tempItem.SubItems.Add(myworkgroup); if form5.CheckBox3.Checked then tempItem.SubItems.Add(myname); if form5.CheckBox4.Checked then tempItem.SubItems.Add(recvip); end else exit; end; Label2.Caption:=INTTOSTR(USERLIST.Items.Count); end; 第 18 頁

48、 共 25 頁 息進行記錄的功能,主要是創(chuàng)建一個記事本文件對信息進行復制保存,以下就 是歷史信息記錄的代碼: 5 5系統(tǒng)實施及測試系統(tǒng)實施及測試 5.15.1實施概況實施概況 本設(shè)計是基于局域網(wǎng)內(nèi)采用 C/S 結(jié)構(gòu)的即時通信軟件,其主要實現(xiàn)的是單 procedure Tdetailform.RecorBBtnClick(Sender: TObject); begin if SavRecorDia.Execute then begin RecorEd.Text:=SavRecorDia.FileName; end; end; procedure Tdetailform.Button3Click(

49、Sender: TObject); var F:textfile; begin showmessage(RecorEd.Text); assignfile(f,RecorEd.Text); rewrite(F); closefile(F); end; begin if detailform.RecorEd.Text then begin Assignfile(f,detailform.RecorEd.Text); if fileexists(detailform.RecorEd.Text)then append(f) else rewrite(F); writeln(f,=); writeln

50、(f,發(fā)往:+_ToIp); if SealCheckBox.Checked then writeln(f,時間:+datetostr(now)+timetostr(now) else writeln(f,時間:+datetostr(now)+timetostr(now); writeln(f,-); writeln(f,SRMemo.Lines.Text); writeln(f,=); closefile(f); end; end; 第 19 頁 共 25 頁 播和廣播功能,還包含了顯示用戶信息、查看歷史信息等輔助功能。本設(shè)計是 在是 Microsoft Windows XP 系統(tǒng)上利用編程

51、軟件開發(fā)的,然后再組建的局域網(wǎng) 中來進行測試和調(diào)試工作,所以最少會用到兩臺或兩臺以上的電腦并由交換機 組成一個小型的局域網(wǎng),考慮到一些系統(tǒng)兼容性的問題,所以在內(nèi)部網(wǎng)絡(luò)上的 每臺計算機上都用的是相同的操作系統(tǒng),在網(wǎng)絡(luò)配置方面也是相同的方式。對 于編程軟件的選擇主要是采用 Delphi7 來編寫和編譯程序的,因為考慮到 Delphi 是具有可視化的一個編程環(huán)境, Delphi 它提供了 500 多個可供使用的 構(gòu)件,利用這些部件可以快速地構(gòu)造出應(yīng)用系統(tǒng)。也可以根據(jù)自己的需要修改 部件或用 Delphi 本身編寫自己的部件,能提供方便、快捷的 Windows 應(yīng)用程序 開發(fā)環(huán)境,本程序也基本是借助與

52、那些組件來編寫的。 5.25.2測試方案測試方案 本程序在 Windows XP 操作系統(tǒng)下,使用 Borland Delphi 7 企業(yè)版軟件作 為開發(fā)工具,利用 Delphi7(企業(yè)版)集成開發(fā)環(huán)境中提供的網(wǎng)絡(luò)通訊組件進 行編程的,代碼也是在這個開發(fā)環(huán)境中編譯的,并在組建的局域網(wǎng)中進行系統(tǒng) 測試的。 設(shè)計測試的是同在一個局域網(wǎng)中,先將編譯好的程序復制到內(nèi)部網(wǎng)絡(luò)上的 沒臺計算機上面,然后都將設(shè)計的系統(tǒng)打開運行,這是觀察是否能顯示所有的 在線用戶的信息,如果了防火墻之類的軟件正在運行的話,很可能不能正常顯 示工作組、IP 等信息,所以最好是關(guān)閉防火墻。如圖 11: 第 20 頁 共 25 頁

53、圖 11 顯示在線用戶 如果能顯示出來用戶的信息則在其中一臺計算機上的信息窗體中輸入好準 備發(fā)送出去的信息“歡迎使用!” ,如圖 12: 圖 12 輸入發(fā)送信息 如果是想發(fā)送到整的網(wǎng)絡(luò)就點擊界面上的廣播按鈕,這時在所有的計算機 上都會彈出一個接收的界面,如圖 13: 圖 13 接收界面 點擊查看按鈕則會彈到一個查看信息的界面上,上面會顯示出剛才所發(fā)送 的信息和來自于誰,如圖 14: 第 21 頁 共 25 頁 圖 14 查看界面 如果是想發(fā)送給網(wǎng)絡(luò)中的其中一個用戶就先選擇要發(fā)送的對象再點擊發(fā)送 按鈕,這時就只會在那個指定的用戶那里彈出查看的界面了而其他用戶則不會 接收到發(fā)送來的信息。 要是想對

54、通訊的內(nèi)容進行記錄,則在歷史記錄窗體上選擇保存通訊記錄的 路徑,點擊確認按鈕,便會在選擇的路徑里生成一個文本文件用來保存用戶的 通訊記錄了,在點擊托盤區(qū)圖標選擇查看記錄,如圖 15: 圖 15 通訊記錄界面 第 22 頁 共 25 頁 最后是退出,退出只能點擊托盤區(qū)的圖標來退出,當關(guān)閉了其中一個用戶 的時候,其他的用戶列表中自動會將該用戶的用戶信息給刪除,這表明此用戶 已經(jīng)下線離開了。 5.35.3測試結(jié)果測試結(jié)果 經(jīng)過多次在局域網(wǎng)中進行測試,本設(shè)計的基本功能都在測試中得到了體現(xiàn), 下面就是我在整個測試的過程中得到的一些測試結(jié)果: 1. 在局域網(wǎng)內(nèi)能完整傳輸所發(fā)的信息,不會出現(xiàn)信息丟失或亂碼等

55、情況 2. 在測試的時候如果開了防火墻很可能不能顯示工作組,但并不會影響 到信息的發(fā)送和接收 3. 在發(fā)送廣播信息時是對所有用戶發(fā)送信息,包括自己也會收到廣播信 息 4. 當進入系統(tǒng)后便能自動更新顯示在線用戶信息,用戶下線時能在顯示 列表中也能自動刪除此用戶信息 5. 能對用戶在即時的通訊時的通訊信息進行記錄,方便用戶查看歷史的 通訊信息 6. 通過測試還發(fā)現(xiàn)了用戶只能進行文本格式即時的通訊,不能發(fā)送圖片 等格式的信息 7. 在發(fā)送信息時沒有能對信息進行加密后在發(fā)送 結(jié)結(jié) 論論 通過本次課題的研究,認識到即時通訊工具在企業(yè)中起到了重要的作用, 本系統(tǒng)實現(xiàn)了顯示在線用戶信息的功能,能夠查看到當前

56、局域網(wǎng)中用戶的在線 情況,并且可以對用戶的用戶名、工作組和 IP 地址的信息進行顯示;能保存歷 史記錄的功能,可以方便用戶對歷史信息進行查看;還實現(xiàn)了在局域網(wǎng)內(nèi)部進 行收發(fā)單播和廣播信息的功能。解決了傳統(tǒng)通訊工具需要連接遠程服務(wù)器來進 行信息轉(zhuǎn)發(fā)的局限性問題,這樣能夠節(jié)約網(wǎng)絡(luò)資源,也保證了在信息交流時的 安全性,減少了病毒及木馬的感染率。但是系統(tǒng)還有是存在一些不足的地方存 在:1、只是單一的傳輸文本信息,還不能對圖片格式等進行傳輸 2、沒有針對 信息進行加密發(fā)送,這樣不能保證所發(fā)送和接收的信息百分之百的安全;3、沒 有設(shè)計用戶登錄界面,使本系統(tǒng)的使用方面還存在安全問題。但是我會在以后 的工作學

57、習中逐步解決這些問題,不斷完善這個系統(tǒng),使它更具實用性的。 本次課題設(shè)計我學到了很多關(guān)于網(wǎng)絡(luò)通訊方面的知識,也認識到自己的能 力,是我從理論走向?qū)嵺`邁出的堅實的一步。從設(shè)計分析到設(shè)計編寫直到具體 實現(xiàn),在學校所學的理論知識對我有很大的幫助,我也發(fā)現(xiàn)了我的很多不足的 第 23 頁 共 25 頁 地方。總之通過這次畢業(yè)設(shè)計,我深深體會到,一個好的程序設(shè)計人員必須具 有認真、謹慎的作風,堅忍不拔的毅力,并且要不斷的向更高的臺階邁進,我 會向著這個方向去努力。 參考文獻參考文獻 1 劉華.黑魔方 Delphi 基礎(chǔ)教程M.北京:清華大學出版社,2004.9。 2 飛思科技產(chǎn)品研發(fā)中心.Delphi 網(wǎng)

58、絡(luò)高級編程M.北京:電子工業(yè)出版社,2002.1。 3 施新剛.Delphi 實效編程百例M.北京:人民郵電出版社,2002.1。 4 鮑敏,吳昊.Delphi 網(wǎng)絡(luò)高級編程M.北京:人民郵電出版社,2001.7。 5 肖建.Delphi 6 編程基礎(chǔ)M.北京:清華大學出版社,2002.1。 6 (美)W.Richars Stevens.TCP/IP 詳解 卷 1:協(xié)議M. 北京:機械工業(yè)出版社,2005。 7 (美)Paul Kimmel.Delphi 6 應(yīng)用開發(fā)指南M.北京:清華大學出版社,2002.1。 第 24 頁 共 25 頁 致致 謝謝 本文是在趙軍老師的熱情關(guān)心和指導下完成的,他淵博的知識和嚴謹?shù)闹?學作風使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我 最衷心的感謝! 在論文完成過程中,本人還得到了其他老師和許多同學的熱心幫助,本人 向他們表示深深的謝意! 最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 第 25 頁 共 25 頁 聲聲 明明

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!