




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
計算機網(wǎng)絡(luò)課程設(shè)計計算機網(wǎng)絡(luò)課程設(shè)計 集中上機實驗報告集中上機實驗報告 學(xué) 生: 學(xué) 號: 班 級: 專 業(yè): 重慶郵電大學(xué)移通學(xué)院 2014 年 12 月 1 目錄目錄 一課程設(shè)計的目的和意義 .1 1.1 課程設(shè)計的目的 .1 1.2 課程設(shè)計的意義 .1 二課程設(shè)計題目和要求 .2 2.1 UDP 服務(wù)器的設(shè)計 .2 2.2 UDP 服務(wù)器設(shè)計的要求 .2 2.3 UDP 服務(wù)器的設(shè)計原理 .3 三詳細設(shè)計 .4 3.1 需求分析 .4 3.2 相關(guān)設(shè)計 .5 3.3 程序流程 .6 3.4 客戶機一方的工作流程 .7 3.5 服務(wù)器一方的工作流程 .7 四代碼及注解 .7 4.1 客戶端程序代碼 .7 4.2 服務(wù)器端程序 .9 五程序運行結(jié)果分析 .11 5.1 WINDOWS 下的測試運行情況 .11 六課程設(shè)計小結(jié) .13 七參考書目 .14 1 一一 課程設(shè)計的目的和意義課程設(shè)計的目的和意義 1.11.1 課程設(shè)計的目的課程設(shè)計的目的 目的:設(shè)計一個基于 UDP 的服務(wù)器 1.21.2 課程設(shè)計的意義課程設(shè)計的意義 意義:UDP 是 TCP/IP 協(xié)議族為傳輸層設(shè)計的兩個協(xié)議之一,它在進程與 進程的通信過程中,提供了有限的差錯校驗功能,是一種無連接的,不可靠 的協(xié)議。UDP 在一個較低的水平上完成進程之間的通信,在收到分組的時候 沒有流量控制機制也沒有確認機制,適用于可靠性比較高的局域網(wǎng)。由于 UDP 采取了無連接的方式,因此協(xié)議簡單,在一些特定的應(yīng)用中協(xié)議運行效 率高。UDP 適合一些實時的應(yīng)用,如 IP 電話,視頻會議,它們要求源主機以 恒定的速率發(fā)送數(shù)據(jù),并且在網(wǎng)絡(luò)出現(xiàn)擁塞時,可以丟失一些數(shù)據(jù),但是延 遲不能太大?;谶@些特點,流式多媒體通信、多播等應(yīng)用在傳輸層采用的 就是 UDP 協(xié)議。 因為 UDP 具有 TCP 所望塵莫及的速度優(yōu)勢。雖然 TCP 協(xié)議中植入了各種 安全保障功能,但是在實際執(zhí)行的過程中會占用大量的系統(tǒng)開銷,無疑使速 度受到嚴重的影響。反觀 UDP 由于排除了信息可靠傳遞機制,將安全和排序 等功能移交給上層應(yīng)用來完成,極大降低了執(zhí)行時間,使速度得到了保證。 2 二二 課程設(shè)計題目和要求課程設(shè)計題目和要求 2.12.1 UDPUDP 服務(wù)器的設(shè)計服務(wù)器的設(shè)計 UDP 是 TCPIP 協(xié)議族為傳輸層設(shè)計的兩個協(xié)議之一,是一 種無連接的,不可靠的協(xié)議。由于 UDP 采取了無連接的方式,因 此協(xié)議簡單,在一些特定的應(yīng)用中協(xié)議運行效率高。UDP 適合一 些實時的應(yīng)用,如 IP 電話、視頻會議,它們要求源主機以恒定 的速率發(fā)送數(shù)據(jù),并且在網(wǎng)絡(luò)出現(xiàn)擁塞時,可以丟失一些數(shù)據(jù), 但是延遲不能太大?;谶@些特點,流式多媒體通信、多播等應(yīng) 用在傳輸層采用的就是 UDP 協(xié)議。 編寫 UDP 服務(wù)器程序,流暢 地完成視頻文件地傳輸,要能對多個客戶端進行管理。需要通過 UDP 模擬多個客戶端連接驗證的情況。 2.22.2 UDPUDP 服務(wù)器設(shè)計的要求服務(wù)器設(shè)計的要求 編寫程序,設(shè)計 UDP 服務(wù)器。因為考慮到實時性,所以選擇 UDP 為主要的網(wǎng)絡(luò)通信技術(shù)。 (1)程序能流暢地完成信息內(nèi)容的傳輸和接收。 (2)要能對多個客服端進行管理。需要通過 UDP 模擬多個客 服端連接驗證的情況。 (3)操作系統(tǒng)、使用語言和編譯環(huán)境不限,但在作業(yè)中必須 注明。 3 2.32.3 UDPUDP 服務(wù)器的設(shè)計原理服務(wù)器的設(shè)計原理 UDP 是一個無連接協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連 接,當它想傳送時就簡單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡 可能快地把它扔到網(wǎng)絡(luò)上。在發(fā)送端, UDP 傳送數(shù)據(jù)的速度僅 僅是受應(yīng)用程序生成數(shù)據(jù)的速度、計算機的能力和傳輸帶寬的 限制;在接收端, UDP 把每個消息段放在隊列中,應(yīng)用程序每 次從隊列中讀一個消息段。 (1)C+編程技術(shù) C+是在 C 語言的基礎(chǔ)上開發(fā)的一種集面向?qū)ο缶幊獭⒎盒途?程和過程化編程于一體的編程語言1 。應(yīng)用較為廣泛,是一種 靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程的通用程序設(shè)計語言。它支 持過程化程序設(shè)計,數(shù)據(jù)抽象,面向?qū)ο笤O(shè)計,制作圖標等多種 程序設(shè)計風(fēng)格。 (2)TCP/IP 協(xié)議技術(shù) 在 T C P / I P 協(xié)議族中,有兩個互不相同的傳輸協(xié)議: T C P(傳輸控制協(xié)議)和 U D P(用戶數(shù)據(jù)報協(xié)議) 。T C P 為 兩臺主機提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程 序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認接收到 的分組,設(shè)置發(fā)送最后確認分組的超時時鐘等。由于運輸層提供 了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細節(jié)。 而另一方面, U D P 則為應(yīng)用層提供一種非常簡單的服務(wù)。它只 是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保 證該數(shù)據(jù)報能到達另一端。任何必需的可靠性必須由應(yīng)用層來提 供。 4 (3)TCP/IP 協(xié)議與 Winsock 網(wǎng)絡(luò)編程接口 Winsock 規(guī)范不是一種網(wǎng)絡(luò)協(xié)議,而是一套開放的、支持多種 協(xié)議的 Windows 寫的網(wǎng)絡(luò)編程接口。Winsock 可以訪問很多種網(wǎng) 絡(luò)協(xié)議,可以把它當作一種協(xié)議的封裝?,F(xiàn)在的 Winsock 已經(jīng)基 本上實現(xiàn)了與協(xié)議無關(guān),可以使用 Winsock 來調(diào)用協(xié)議的功能 (4)Winsock API 的使用 下面給出了使用 Winsock 進行編程時涉及的主要函數(shù): WSAStartup 函數(shù)、WSACleanup 函數(shù)、socket 函數(shù)、 closesocket 函數(shù)、send 函數(shù)、recv 函數(shù)、bind 函數(shù)、listen 函數(shù)、accept 函數(shù)、connect 函數(shù) 三三 詳細設(shè)計詳細設(shè)計 3.13.1 需求分析需求分析 隨著信息化的全面建設(shè)和普及中,服務(wù)器的角色舉足輕重, 它為計算機提供網(wǎng)絡(luò)和技術(shù)的服務(wù),也是整個網(wǎng)絡(luò)系統(tǒng)的核心部 分,中小企業(yè)的建設(shè)會有很多波折和阻礙,前期是資金問題,在 服務(wù)器方面秉著少花錢多辦事,高回報的原則。對于服務(wù)器方面 能省則省,對于設(shè)置專門的技術(shù)人員維護服務(wù)器的企業(yè)也是屈指 可數(shù)的,所以一般會選擇服務(wù)器租用服務(wù)和服務(wù)器代維服務(wù),這 對于服務(wù)器方面的開支就在可控成本之內(nèi)了。價格低廉,服務(wù)器 有了穩(wěn)定保障,這也是目前很多中小企業(yè)的普遍做法。 其次就是在挑選服務(wù)器方面,根據(jù)企業(yè)的實際業(yè)務(wù),明確規(guī) 劃服務(wù)器租用方向是很有必要的,隨著業(yè)務(wù)量的不斷上升,調(diào)整 5 服務(wù)器的配置,從而保證資金和服務(wù)器得到充分利用。目前企業(yè) 級的服務(wù)器大致有文件服務(wù)器,數(shù)據(jù)庫服務(wù)器,郵件服務(wù)器, web 服務(wù)器,多媒體服務(wù)器,終端服務(wù)器等類型。這些服務(wù)器是 根據(jù)企業(yè)的不同業(yè)務(wù)設(shè)置的。 UDP 服務(wù)器是采用 UDP 協(xié)議的一類服務(wù)器的統(tǒng)稱。UDP 不 屬于連接型協(xié)議,因而具有資源消耗小,處理速度快的優(yōu)點,所 以通常音頻、視頻和普通數(shù)據(jù)在傳送時使用 UDP 較多,因為它們 即使偶爾丟失一兩個數(shù)據(jù)包,也不會對接收結(jié)果產(chǎn)生太大影響。 比如我們聊天用的 ICQ 和 QQ 就是使用的 UDP 協(xié)議。 所以根據(jù)企業(yè)的發(fā)展方向和業(yè)務(wù)要求,合理的搭配是很有必 要的。 3.3.2 2 相關(guān)設(shè)計相關(guān)設(shè)計 設(shè)計 UDP 服務(wù)器的過程如下所示。 首先,創(chuàng)建又一個 Socket 并監(jiān)聽。然后啟動線程接收數(shù)據(jù)。 用一個鏈表保存所有連上的客戶,并通知連接成功。這樣,客戶 就有機會處理這一事件并作一些動作。最后,當客戶斷開時,向 服務(wù)器發(fā)送一個事件,服務(wù)器就可以做一些收尾工作。 其中最關(guān)鍵的部分是收發(fā)部分和數(shù)據(jù)處理部分。 6 3.33.3 程序流程程序流程 圖 2.1 服務(wù)器工作流程 Bind() Socket() Readfrom() 等待客戶請求 處理服務(wù)請求 Sendto() Close() Socket() Bind() Sendto() Readfrom() Close() 服務(wù)請求 服務(wù)應(yīng)答 服務(wù)器 客戶機 7 3.43.4 客戶機一方的工作流程客戶機一方的工作流程 (1)打開通信信道(申請一個套接字),并連接到服務(wù)器在主機的 保留端口,該端口對應(yīng)服務(wù)器的 UDP 進程。 (2)向服務(wù)器發(fā)出請求報文,等待接收應(yīng)答。 (3)從服務(wù)器方收到最終應(yīng)答結(jié)果,或在不再請求時關(guān)閉信道并 終止客戶機進程。 3.53.5 服務(wù)器一方的工作流程服務(wù)器一方的工作流程 (1)打開通信信道(申請一個套接字),通知本地主機在某一保留 端口接收客戶機請求。 (2)等待客戶機請求到達指定端口。 (3)接收到請求,啟動一個新進程處理用戶請求,同時釋放舊進 程以響應(yīng)新的客戶請求,一旦服務(wù)完成,關(guān)閉新進程與客戶 的通信鏈路。 (4)繼續(xù)等待客戶機請求。 (5)如果不想響應(yīng)客戶機請求,關(guān)閉服務(wù)器進程。 四四 代碼及注解代碼及注解 4.14.1 客戶端程序客戶端程序代碼代碼 #include #include 8 #pragma comment(lib, WS2_32) / 鏈接到 WS2_32.lib BOOL InitWinsock();/初始化 winsock void main() SOCKET socket1; /定義套接字 InitWinsock();/初始化 winsock struct sockaddr_in server; /定義結(jié)構(gòu)體 int len =sizeof(server); /定義結(jié)構(gòu)體的長度 server.sin_family=AF_INET; /server 的地址族 server.sin_port=htons(1000); /server 的監(jiān)聽端口 server.sin_addr.s_addr=inet_addr(172.16.93.187); /server 的地址 socket1=socket(AF_INET,SOCK_DGRAM,0); /給套接字賦值 while (1) /使可以循環(huán)輸入 char buffer1024=0; /定義緩沖區(qū) printf(input messagen); / 提示輸入 scanf(%s,buffer); /輸入 if (strcmp(buffer,bye)=0) /比較字符串 break; if (sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*) closesocket(socket1); /關(guān)閉套接字 BOOL InitWinsock() int Error; WORD VersionRequested;/版本號 9 WSADATA WsaData; VersionRequested=MAKEWORD(2,2); /版本 2 的套接字 Error=WSAStartup(VersionRequested, /啟動 WinSock2 if(Error!=0) return FALSE; /加載套接字庫 失敗則返回 else if(LOBYTE(WsaData.wVersion)!=2|HIBYTE(WsaData.wHighV ersion)!=2) /判斷版本 WSACleanup(); /解除綁定并釋放空間 return FALSE; return TRUE; /如果不是版本 2 則退出 4.24.2 服務(wù)器端程序服務(wù)器端程序 #include #include #pragma comment(lib, WS2_32) / 鏈接到 WS2_32.lib BOOL InitWinsock(); void main() SOCKET socket1;/定義套接字 InitWinsock(); struct sockaddr_in local; struct sockaddr_in from; int fromlen =sizeof(from); 10 local.sin_family=AF_INET; local.sin_port=htons(1000); /監(jiān)聽端口 local.sin_addr.s_addr=INADDR_ANY; /本機 socket1=socket(AF_INET,SOCK_DGRAM,0); bind(socket1,(struct sockaddr*) while (1) char buffer1024=0; printf(waiting for message from others- -n); if (recvfrom(socket1,buffer,sizeof buffer,0,(struct sockaddr*) /給 cilent 發(fā)信息 sendto(socket1,buffer,sizeof buffer,0,(struct sockaddr*) Sleep(500); closesocket(socket1); BOOL InitWinsock() int Error; WORD VersionRequested; WSADATA WsaData; VersionRequested=MAKEWORD(2,2); Error=WSAStartup(VersionRequested, /啟動 11 WinSock2 if(Error!=0) return FALSE; else if(LOBYTE(WsaData.wVersion)!=2|HIBYTE(WsaData.wHighV ersion)!=2) WSACleanup(); return FALSE; return TRUE; 五五 程序運行結(jié)果程序運行結(jié)果分析分析 5.15.1 WindowsWindows 下的測試運行情況下的測試運行情況 a) 查詢 IP 地址:得到 IP 地址為 172.16.93.187 12 圖 1:查詢 IP 地址 b) 將 IP 地址為 172.16.93.187 的計算機作為客戶端的結(jié)果 圖 2:客戶端發(fā)送信息 13 c) 服務(wù)器接受信息的情況 圖 3:服務(wù)器接受信息的狀況 六六 課程設(shè)計小結(jié)課程設(shè)計小結(jié) 我們這組的課題是 UDP 服務(wù)器設(shè)計,其主要研究內(nèi)容在于實 現(xiàn)文件的傳輸及接收。我們首先是了解 UDP 的定義,即確定 UDP 究竟是個什么協(xié)議,它有些什么性質(zhì)和特征,它應(yīng)用于那些方面。 經(jīng)過了解知道了 UDP 是
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政法學(xué)考試時的思維方法與應(yīng)變策略:試題及答案
- 敏捷開發(fā)工具選型試題及答案
- 信息技術(shù)市場競爭分析試題及答案
- 軟考IP地址規(guī)劃技巧試題及答案
- DevOps實踐及其重要性試題及答案
- 2025關(guān)于協(xié)商工資調(diào)整合同勞動范本
- 公司效率提升與戰(zhàn)略風(fēng)險管理的協(xié)同思考試題及答案
- AI與機器學(xué)習(xí)入門試題及答案
- 2025湖南工商大學(xué)橫向科研課題合同簽訂儀式
- 2025年VB考試新動態(tài)試題及答案
- 2025屆山西省呂梁市高三第三次模擬考試英語試題(原卷版+解析版)
- utc無人機考試試題及答案
- 咖啡加工廠建設(shè)項目可行性研究報告
- 2025年人力資源管理專業(yè)知識考試試題及答案
- 倉儲物流管理試題及答案
- 漢字介紹課件
- 建筑中級職稱《建筑工程管理》歷年考試真題題庫(含答案)
- 拘留所教育課件02
- 醫(yī)院職能部門監(jiān)管及持續(xù)改進記錄表(DOC57)
- 質(zhì)量整改通知單(樣板)
- 2022年教學(xué)教材《石油裂解與乙烯》精品優(yōu)秀教案
評論
0/150
提交評論