資源描述:
《基于UDP協(xié)議的聊天程序設計報告》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、編號:計算機網(wǎng)絡課程設計題目:基于UDP的聊天程序系別:計算機科學與工程學院摘要隨著網(wǎng)絡技術的發(fā)展及人們生活的需求,網(wǎng)絡聊天已越來越受到人們的青睞。網(wǎng)絡聊天已經(jīng)成為人們工作生活中傳遞信息、交流感情的重要工具,給人們帶來了很大的方便。本課題是開發(fā)一個基于UDP的局域網(wǎng)聊天系統(tǒng),運用軟件工程的設計流程,綜合運用數(shù)據(jù)庫編程技術、Windows程序設計技術、網(wǎng)絡通訊技術,此網(wǎng)絡聊天工具采用客戶端/服務器(C/S)模式,客戶端采用UDP與服務器連接,客戶端與客戶端之間通過UDP互相通訊。服務器端具有服務器端口設置,此聊天工具能實現(xiàn)多人聊天功能,適用于局域網(wǎng)使用的網(wǎng)
2、絡聊天工具,其操作簡單,靈活性好,運行也比較穩(wěn)定。關鍵詞:網(wǎng)絡通訊;客戶端/服務器模型;用戶數(shù)據(jù)報協(xié)議;套接字一、需求分析1.1課程設計目的開發(fā)一個專用于實現(xiàn)兩臺計算機之間即時通訊的軟件以方便兩臺計算機之間信息的交流。在連接并通信時尤其是近程的即時通訊徹底的脫離了遠程的服務器避免了和遠程服務器連接時過多的浪費網(wǎng)絡資源。并且避免了服務器忙或與服務器無法連接時浪費過多時間用于和服務器建立連接因此這個軟件是極具適應性和實用性的即時通訊軟件本次課程設計的目的是學習基于UDP協(xié)議實現(xiàn)網(wǎng)絡聊天程序已達到學會面向無連接方式的程序設計方法并理解網(wǎng)絡編
3、程中面向無連接的概念。1.2課程設計的內(nèi)容用戶數(shù)據(jù)報UDP是一個無連接協(xié)議使用這種協(xié)議時并不需要在兩臺計算機之間建立固定的連接也就是說通信雙方?jīng)]有服務器和客戶機之分它們之間進行的是對等通信所以它的優(yōu)勢很明顯是現(xiàn)代通信不可或缺的一部分。所以利用它的優(yōu)勢設計一個可以聊天的軟件實現(xiàn)兩臺計算機間的即時通訊。1.3課程設計要求基于UDP協(xié)議實現(xiàn)的聊天和一對多的聊天提供友好的用戶界面便于用戶進行操作。二.UDP協(xié)議的理解:精選范本,供參考!UDP協(xié)議是英文UserDatagramProtocol的縮寫,即用戶數(shù)據(jù)報協(xié)議,主要用來支持那些需要
4、在計算機之間傳輸數(shù)據(jù)的網(wǎng)絡應用。包括網(wǎng)絡視頻會議系統(tǒng)在內(nèi)的眾多的客戶/服務器模式的網(wǎng)絡應用都需要使用UDP協(xié)議。UDP協(xié)議從問世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項非常實用和可行的網(wǎng)絡傳輸層協(xié)議。UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層。UDP協(xié)議的主要作用是將網(wǎng)絡數(shù)據(jù)流量壓縮成數(shù)據(jù)報的形式。一個典型的數(shù)據(jù)報就是一個二進制數(shù)據(jù)的傳輸單位。每一個數(shù)據(jù)報的前8個字節(jié)用來包含報頭信息,剩余字節(jié)則用來包含具體的傳輸數(shù)據(jù)。UDP協(xié)議使用端口號為不同的應用保留其各自的數(shù)據(jù)傳輸通道。正是采用這一機
5、制實現(xiàn)對同一時刻內(nèi)多項應用同時發(fā)送和接收數(shù)據(jù)的支持。數(shù)據(jù)發(fā)送一方(可以是客戶端或服務器端)將UDP數(shù)據(jù)報通過源端口發(fā)送出去,而數(shù)據(jù)接收一方則通過目標端口接收數(shù)據(jù)。有的網(wǎng)絡應用只能使用預先為其預留或注冊的靜態(tài)端口;而另外一些網(wǎng)絡應用則可以使用未被注冊的動態(tài)端口。因為UDP報頭使用兩個字節(jié)存放端口號,所以端口號的有效范圍是從0到65535。一般來說,大于49151的端口號都代表動態(tài)端口。數(shù)據(jù)報的長度是指包括報頭和數(shù)據(jù)部分在內(nèi)的總的字節(jié)數(shù)。因為報頭的長度是固定的,所以該域主要被用來計算可變長度的數(shù)據(jù)部分(又稱為數(shù)據(jù)負載)。數(shù)據(jù)報的最大長度根據(jù)操作環(huán)境的不同而各
6、異。從理論上說,包含報頭在內(nèi)的數(shù)據(jù)報的最大長度為65535字節(jié)。不過,一些實際應用往往會限制數(shù)據(jù)報的大小,有時會降低到8192字節(jié)。UDP協(xié)議使用報頭中的校驗值來保證數(shù)據(jù)的安全。校驗值首先在數(shù)據(jù)發(fā)送方通過特殊的算法計算得出,在傳遞到接收方之后,還需要再重新計算。如果某個數(shù)據(jù)報在傳輸過程中被第三方篡改或者由于線路噪音等原因受到損壞,發(fā)送和接收方的校驗計算值將不會相符,由此UDP協(xié)議可以檢測是否出錯。UDP協(xié)議并不提供數(shù)據(jù)傳送的保證機制。如果在從發(fā)送方到接收方的傳遞過程中出現(xiàn)數(shù)據(jù)報的丟失,協(xié)議本身并不能做出任何檢測或提示,由于排除了信息可靠傳遞機制,將安全和
7、排序等功能移交給上層應用來完成,極大降低了執(zhí)行時間,使速度得到了保證。三.UDP協(xié)議特點1、UDP傳送數(shù)據(jù)前并不與對方建立連接,即UDP是無連接的,在傳輸數(shù)據(jù)前,發(fā)送方和接收方相互交換信息使雙方同步。2、UDP不對收到的數(shù)據(jù)進行排序,在UDP報文的首部中并沒有關于數(shù)據(jù)順序的信息(如TCP所采用的序號),而且報文不一定按順序到達的,所以接收端無從排起。3、UDP對接收到的數(shù)據(jù)報不發(fā)送確認信號,發(fā)送端不知道數(shù)據(jù)是否被正確接收,也不會重發(fā)數(shù)據(jù)。4、UDP傳送數(shù)據(jù)較TCP快速,系統(tǒng)開銷也少。5、由于缺乏擁塞控制(congestioncontrol),需要基于網(wǎng)絡
8、的機制來減小因失控和高速UDP流量負荷而導致的擁塞崩潰效應。換句話說,因為UDP