資源描述:
《基于UDP協(xié)議的網(wǎng)絡(luò)聊天工具設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、摘要本課程設(shè)計(jì)是利用WinSock編程來實(shí)現(xiàn)基于UDP辦議的網(wǎng)絡(luò)聊天工具設(shè)計(jì),UDP(UserDatagramProtocol用戶數(shù)據(jù)報(bào)協(xié)議)協(xié)議是無連接的協(xié)議,是TCP/IP協(xié)議的一種分層協(xié)議。設(shè)計(jì)屮我們利用MFC編程,對(duì)程序的界面進(jìn)行設(shè)計(jì),通過設(shè)計(jì)進(jìn)一步掌握利用VisualC++進(jìn)行程序設(shè)計(jì)的能力理解和運(yùn)用而向?qū)﹀璩绦蛟O(shè)計(jì)的思想和方法,初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法,理解Windows程序的運(yùn)行過程以及掌握Winsocket編程方法。本設(shè)計(jì)實(shí)現(xiàn)的聊天工具要求有客戶端和服務(wù)器端??蛻舳四軐?shí)現(xiàn)消息的輸入和發(fā)送、接收消息、連接服務(wù)器與斷開連接等基本功能;服務(wù)器端能收
2、發(fā)信息、保存客戶端的IP信息地址、將接收到的消息向所有客戶端傳發(fā)等基本信息。關(guān)鍵字:WinSock編程,UDP協(xié)議,TCP/IP協(xié)議,MFC編程,Windows程序目錄1設(shè)計(jì)目的與要求11.1設(shè)計(jì)目的11-2設(shè)計(jì)內(nèi)容11?3設(shè)計(jì)要求12設(shè)計(jì)環(huán)境或器材、原理與說明32.1設(shè)計(jì)環(huán)境與器材32.2原理與說明33設(shè)計(jì)過程及程序代碼43.1服務(wù)器端設(shè)計(jì)43.1.1服務(wù)器端程序流程設(shè)計(jì)43.1.2服務(wù)器端界面設(shè)計(jì)43.1.3服務(wù)器端套接字的具體操作53.1.4鏈表的維護(hù)以及消息的廣播63.1.5連接請(qǐng)求與斷開連接63.2客戶端的設(shè)計(jì)63.2.1客戶器端程序流程設(shè)計(jì)63.2.2客戶端界
3、面設(shè)計(jì)73.2.3客戶端的功能實(shí)現(xiàn)84設(shè)計(jì)結(jié)果與分析104.1設(shè)計(jì)結(jié)果104.2設(shè)計(jì)分析115設(shè)計(jì)體會(huì)與建議12參考文獻(xiàn)13基于UDP協(xié)議的網(wǎng)絡(luò)聊天工具設(shè)計(jì)1設(shè)計(jì)目的與要求l.i設(shè)計(jì)目的1、進(jìn)一步掌握利用VisualC++進(jìn)行程序設(shè)計(jì)的能力;2、進(jìn)一步理解和運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)的思想和方法;3、初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基木方法;4、學(xué)會(huì)調(diào)試一個(gè)較長程序的基本方法;5、理解Windows程序的運(yùn)行過程;6、掌握winsocket編程方法。1.2設(shè)計(jì)內(nèi)容木實(shí)驗(yàn)設(shè)計(jì)內(nèi)容是:設(shè)計(jì)一個(gè)程序,實(shí)現(xiàn)聊天功能,要求有客戶端和服務(wù)器端??蛻舳四軐?shí)現(xiàn)消息的輸入和發(fā)送、接收消息、連接服務(wù)
4、器與斷開連接等基本功能;服務(wù)器端要求能收發(fā)信息、保存客戶端的IP信息地址、將接收到的消息向所冇客戶端轉(zhuǎn)發(fā)等基本信息。1.3設(shè)計(jì)要求整個(gè)程序使用winsocket函數(shù)做網(wǎng)絡(luò)數(shù)據(jù)收發(fā),基于UDP協(xié)議??梢灾苯邮褂肳indowsAPI編程(SDK編程),也可以使用MFC編程。本課程設(shè)計(jì)中我們使用的是MFC編程。其具體的設(shè)計(jì)要求如下所述:1、服務(wù)器端:在服務(wù)器端,當(dāng)服務(wù)器端程序運(yùn)行吋便初始化socket,創(chuàng)建服務(wù)器端,在服務(wù)器端包含一個(gè)發(fā)送窗口和一個(gè)接收窗口,以及一個(gè)ListBox來顯示當(dāng)前連接到服務(wù)器上的客戶端的IP地址。服務(wù)器端功能:1、初始化socket,創(chuàng)建服務(wù)器端。2、
5、接受用戶傳送來的連接判斷命令,并向用戶發(fā)岀響應(yīng)命令。3、維護(hù)一個(gè)鏈表,保存所有用戶的IP地址。顯示所冇在線IP。4、向鏈表中的所有用戶發(fā)送系統(tǒng)消息。5、接受用戶傳送來的聊犬信息,然后向鏈表中的所用用戶轉(zhuǎn)發(fā)。2、客戶端:客戶端界而,有一個(gè)用于顯示接受的聊天信息,和一個(gè)用來接受用戶輸入的聊天信息。當(dāng)按卜?“發(fā)送”按鈕時(shí)將信息發(fā)送給服務(wù)器。程序運(yùn)行后用戶先輸入門己呢稱然后?進(jìn)行連接,如果成功則在接收窗口輸出成功捉示,否則彈出連接失敗警告框。在連接好Z后用戶也可以選擇與服務(wù)器斷開。2設(shè)計(jì)環(huán)境或器材、原理與說明2.1設(shè)計(jì)環(huán)境與器材因?yàn)檫x擇使用MFC編程,該程序又是網(wǎng)絡(luò)編程,所以設(shè)計(jì)
6、環(huán)境與器材為:?PC機(jī)兩到三臺(tái)(程序試運(yùn)行時(shí)需要多臺(tái)電腦充當(dāng)客戶端);?能正常連接的網(wǎng)卡;?Windows環(huán)境與MicrosoftVisualC~F+6.0編譯環(huán)境;2.2原理與說明在計(jì)算機(jī)網(wǎng)絡(luò)屮,信息的傳輸是建立在物理傳輸介質(zhì)與網(wǎng)絡(luò)傳輸協(xié)議上的,TCP/IP協(xié)議是網(wǎng)絡(luò)協(xié)議的一種,它分為不同的層次:TCP(TransmissionControlProtocol傳輸控制協(xié)議),UDP(UserDatagramProtocol用戶數(shù)據(jù)報(bào)協(xié)議);IP(InternetProtocol網(wǎng)際協(xié)議);它們分別工作于傳輸層與網(wǎng)絡(luò)層。WindowSocket是Windows卜?的標(biāo)準(zhǔn)網(wǎng)絡(luò)
7、程序設(shè)計(jì)接口,它是由一些API函數(shù)組成,用以提供對(duì)網(wǎng)絡(luò)通信的支持。客戶端該程序設(shè)計(jì)使用WindowsSockets編程。在數(shù)據(jù)傳輸協(xié)議屮,我們使用UDP協(xié)議,UDPI?辦議是無連接的協(xié)議,在服務(wù)器端不調(diào)用listen函數(shù)進(jìn)行監(jiān)聽,也不調(diào)用accept函數(shù)建立連接,其操作流程圖如下圖所示:服務(wù)器端socket^!數(shù)建立倉接字bind函數(shù)給套接字指定木地地址百send函數(shù)和reve兩數(shù)收發(fā)數(shù)據(jù)closesocket*]數(shù)關(guān)閉套接字socket^!數(shù)建立?接7*bind函數(shù)給倉接字指定木地地址一匚send函數(shù)和reve函數(shù)收發(fā)數(shù)據(jù)c