版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 網(wǎng)絡(luò)工程課程設(shè)計(jì)</b></p><p><b> 設(shè)計(jì)說(shuō)明書(shū)</b></p><p> 起止日期:2012年7月2日至2012年7月13日</p><p> 計(jì)算機(jī)與信息工程學(xué)院</p><p> 2012年7月13日</p><p>
2、<b> 課程設(shè)計(jì)任務(wù)書(shū)</b></p><p> 2011 —2012 學(xué)年第 二 學(xué)期</p><p> 電子與信息工程 系 網(wǎng)絡(luò)工程 專業(yè) 一 班級(jí)</p><p> 課程設(shè)計(jì)名稱: 網(wǎng)絡(luò)工程課程設(shè)計(jì) </p><p> 設(shè)計(jì)題目: 基
3、于C/S的簡(jiǎn)單通信通信協(xié)議 </p><p> 完成期限:自 2012 年 7 月 2 日至 2012 年 7 月 13 日共 2 周</p><p> 設(shè)計(jì)依據(jù)、要求及主要內(nèi)容:</p><p><b> 一、 設(shè)計(jì)目的</b></p><p> 了解網(wǎng)絡(luò)協(xié)議工作原理,并
4、使用編程實(shí)現(xiàn)。</p><p><b> 二、設(shè)計(jì)要求 </b></p><p> 在本課程設(shè)計(jì)過(guò)程中要求學(xué)生:</p><p> (1)重視課程設(shè)計(jì)環(huán)節(jié),用嚴(yán)謹(jǐn)、科學(xué)和踏實(shí)的工作態(tài)度對(duì)待課程設(shè)計(jì)的每一項(xiàng)任務(wù);</p><p> ?。?)按照課程設(shè)計(jì)的題目要求,獨(dú)立地完成各項(xiàng)任務(wù)。</p><
5、;p> ?。?)學(xué)生在接受設(shè)計(jì)任務(wù)后,根據(jù)要求認(rèn)真完成。</p><p> ?。?)認(rèn)真編寫(xiě)課程設(shè)計(jì)報(bào)告。</p><p><b> 三、設(shè)計(jì)內(nèi)容</b></p><p> 寫(xiě)一個(gè)軟件,并用此軟件實(shí)現(xiàn)某個(gè)網(wǎng)絡(luò)傳輸協(xié)議的功能</p><p> 指導(dǎo)教師(簽字): </p>
6、;<p> 教研室主任(簽字): </p><p> 批準(zhǔn)日期: 年 月 日</p><p><b> 摘 要</b></p><p> 本次課程設(shè)計(jì)完成一個(gè)簡(jiǎn)單的通信協(xié)議,使用C++語(yǔ)言在基于對(duì)C/S模式了解的基礎(chǔ)上,并利用Socket套接字完成這個(gè)協(xié)議。</p&
7、gt;<p><b> 目錄</b></p><p> 第1章 程序定義1</p><p> 第2章 需求分析1</p><p> 第3章 程序設(shè)計(jì)1</p><p> 3.1 開(kāi)發(fā)環(huán)境及工具1</p><p><b> 3.2結(jié)構(gòu)設(shè)計(jì)1</b&
8、gt;</p><p> 3.2.1 Client客戶端1</p><p> 3.2.2服務(wù)器端2</p><p><b> 3.3詳細(xì)設(shè)計(jì)3</b></p><p> 3.3.1系統(tǒng)數(shù)據(jù)結(jié)構(gòu)3</p><p> 第4章 實(shí)驗(yàn)結(jié)果6</p><p>
9、 第5章 實(shí)驗(yàn)心得7</p><p><b> 參考文獻(xiàn)7</b></p><p><b> 第1章 程序定義</b></p><p> 本程序采用TCP/IP協(xié)議的套接字功能完成,并在C/S模式的基礎(chǔ)上建立的,擁有一個(gè)Server客戶端以及Client客戶端,并能夠?qū)崿F(xiàn)兩個(gè)客戶端的相互通信。</p>
10、<p><b> 第2章 需求分析</b></p><p> Socket通常也稱作"套接字",用于描述IP地址、端口和傳輸協(xié)議,是一個(gè)通信鏈的句柄。IP地址是每個(gè)主機(jī)的網(wǎng)絡(luò)地址,是唯一的,同時(shí)程序端口號(hào)是應(yīng)用軟件運(yùn)行的編號(hào),而傳輸協(xié)議是通信過(guò)程中所采用的傳輸協(xié)議,所以每個(gè)Socket套接字是每個(gè)程序特定的編號(hào)。Server建立的時(shí)候在監(jiān)聽(tīng)整個(gè)網(wǎng)絡(luò)環(huán)境,
11、當(dāng)以相同Socket套接字進(jìn)行建立連接請(qǐng)求的時(shí)候才會(huì)接受這種連接請(qǐng)求。每種服務(wù)都打開(kāi)一個(gè)Socket,并綁定到一個(gè)端口上,不同的端口對(duì)應(yīng)于不同的服務(wù)。</p><p> 本程序是一個(gè)聊天程序,為了能過(guò)進(jìn)行簡(jiǎn)單的通信過(guò)程。</p><p><b> 第3章 程序設(shè)計(jì)</b></p><p> 3.1 開(kāi)發(fā)環(huán)境及工具</p>&
12、lt;p> 開(kāi)發(fā)工具M(jìn)icrosoft Visual C++ 6.0</p><p><b> 開(kāi)發(fā)語(yǔ)言C++</b></p><p><b> 3.2結(jié)構(gòu)設(shè)計(jì)</b></p><p> 3.2.1 Client客戶端</p><p><b> 3.2.2服務(wù)器端<
13、;/b></p><p><b> 3.3詳細(xì)設(shè)計(jì)</b></p><p> 3.3.1系統(tǒng)數(shù)據(jù)結(jié)構(gòu)</p><p> Client客戶端程序:</p><p> #include <winsock2.h></p><p> #include <stdio.h&g
14、t;</p><p> #pragma comment(lib,"ws2_32.lib")</p><p> void main()</p><p><b> {</b></p><p> WORD wVersionRequested;</p><p> WSADAT
15、A wsaData;</p><p><b> int err;</b></p><p> wVersionRequested = MAKEWORD( 1, 1 );//請(qǐng)求1.1版本的winsock庫(kù)</p><p> err = WSAStartup( wVersionRequested, &wsaData );</p&
16、gt;<p> if ( err != 0 ) {</p><p><b> return;</b></p><p><b> }</b></p><p> if ( LOBYTE( wsaData.wVersion ) != 1 ||</p><p> HIBYTE( ws
17、aData.wVersion ) != 1 ) {</p><p> WSACleanup( );</p><p><b> return; </b></p><p><b> }</b></p><p> SOCKET sockClient=socket(AF_INET,SOCK_DGRA
18、M,0);</p><p> SOCKADDR_IN addrSrv;</p><p> addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");</p><p> addrSrv.sin_family=AF_INET;</p><p> addrSrv.sin_po
19、rt=htons(6000);</p><p> char recvBuf[100];</p><p> char sendBuf[100];</p><p> char tempBuf[200]; </p><p> int len=sizeof(SOCKADDR);</p><p><b> w
20、hile(1)</b></p><p><b> {</b></p><p> printf("請(qǐng)輸入消息:\n");</p><p> gets(sendBuf);</p><p> sendto(sockClient,sendBuf,strlen(sendBuf)+1,0,&l
21、t;/p><p> (SOCKADDR*)&addrSrv,len);</p><p> recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)&addrSrv,&len);</p><p> sprintf(tempBuf,"%s 說(shuō): %s",inet_ntoa(addrSrv.s
22、in_addr),recvBuf);</p><p> printf("%s\n",tempBuf);</p><p><b> }</b></p><p> closesocket(sockClient);</p><p> WSACleanup();</p><p>
23、;<b> while(1);</b></p><p><b> }</b></p><p> Server客戶端程序:</p><p> #include <winsock2.h></p><p> #include <stdio.h></p>&l
24、t;p> #pragma comment(lib,"ws2_32.lib")</p><p> void main()</p><p><b> {</b></p><p> WORD wVersionRequested;</p><p> WSADATA wsaData;</p
25、><p><b> int err;</b></p><p> wVersionRequested = MAKEWORD( 1, 1 );//請(qǐng)求1.1版本的winsock庫(kù)</p><p> err = WSAStartup( wVersionRequested, &wsaData );</p><p>
26、if ( err != 0 ) {</p><p><b> return;</b></p><p><b> }</b></p><p> if ( LOBYTE( wsaData.wVersion ) != 1 ||</p><p> HIBYTE( wsaData.wVersion )
27、 != 1 ) {</p><p> WSACleanup( );</p><p><b> return; </b></p><p><b> }</b></p><p> //加載完套接字的庫(kù)后,創(chuàng)建套接字</p><p> SOCKET sockSrv=soc
28、ket(AF_INET,SOCK_DGRAM,0);</p><p> //將套接字綁定到地址</p><p> SOCKADDR_IN addrSrv;</p><p> addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);</p><p> addrSrv.sin_family=AF_IN
29、ET;</p><p> addrSrv.sin_port=htons(6000);</p><p> bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));</p><p> char recvBuf[100];</p><p> char sendBuf[100];</
30、p><p> char tempBuf[200];</p><p> SOCKADDR_IN addrClient;//獲取通訊方的地址信息</p><p> int len=sizeof(SOCKADDR);</p><p><b> while(1)</b></p><p><b&g
31、t; {</b></p><p> recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);</p><p> sprintf(tempBuf,"%s 說(shuō): %s",inet_ntoa(addrClient.sin_addr),recvBuf);</p>&l
32、t;p> printf("%s\n",tempBuf);</p><p> printf("請(qǐng)輸入消息:\n");</p><p> gets(sendBuf);//獲取一行數(shù)據(jù),回車結(jié)束</p><p> sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*
33、)&addrClient,len);</p><p><b> }</b></p><p> closesocket(sockSrv);</p><p> WSACleanup();</p><p><b> while(1);</b></p><p><
34、;b> }</b></p><p><b> 第4章 實(shí)驗(yàn)結(jié)果</b></p><p><b> Server客戶端</b></p><p><b> Client客戶端</b></p><p><b> 第5章 實(shí)驗(yàn)心得</b&g
35、t;</p><p> 通過(guò)此次的實(shí)驗(yàn),讓我對(duì)于Socket網(wǎng)絡(luò)聊天類的使用有了更深入的了解,在關(guān)于網(wǎng)絡(luò)編程的方面也有了新的認(rèn)識(shí)。雖然此程序的功能還比較的簡(jiǎn)單,而且某些方面還沒(méi)能完善,但是,我相信我只是一個(gè)開(kāi)始。</p><p> 課程設(shè)計(jì)是每一個(gè)大學(xué)生在大學(xué)生涯中都不可或缺的,它使我們?cè)趯?shí)踐中了 鞏固了所學(xué)的知識(shí)、在實(shí)踐中鍛煉自己的動(dòng)手能力;實(shí)習(xí)又是對(duì)每一位大學(xué)生所 學(xué)專業(yè)知識(shí)的一種
36、拓展手段, 它讓我們學(xué)到了很多在課堂上根本就學(xué)不到的知識(shí), 不僅開(kāi)闊了自己的視野,增戰(zhàn)了自己的見(jiàn)識(shí),也為我們以后進(jìn)一步走向社會(huì)打下 了堅(jiān)實(shí)的基礎(chǔ),是我們走向以后走向工作崗位的奠基石。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)第4版.電子工業(yè)出版社.2003</p><p> [2]趙永發(fā),由大
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于音頻通信的安全通信協(xié)議研究與設(shè)計(jì).pdf
- 網(wǎng)絡(luò)工程課程設(shè)計(jì)
- 網(wǎng)絡(luò)工程課程設(shè)計(jì)
- 基于tcp的網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于tcp的網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 串口通信協(xié)議
- usb通信協(xié)議
- 網(wǎng)絡(luò)工程課程設(shè)計(jì) (2)
- 基于無(wú)線Mesh網(wǎng)絡(luò)通信協(xié)議的研究.pdf
- 校園網(wǎng)絡(luò)工程設(shè)計(jì)-網(wǎng)絡(luò)工程課程設(shè)計(jì)報(bào)告
- 校園網(wǎng)絡(luò)工程設(shè)計(jì)-網(wǎng)絡(luò)工程課程設(shè)計(jì)報(bào)告
- 網(wǎng)絡(luò)通信課程設(shè)計(jì)
- 基于tcpip協(xié)議的網(wǎng)絡(luò)通信應(yīng)用程序課程設(shè)計(jì)報(bào)告
- BCM通信協(xié)議棧設(shè)計(jì).pdf
- 通信協(xié)議格式.xls
- 《基于android的簡(jiǎn)單聊天通信軟件設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- 通信協(xié)議格式.xls
- 工控通信協(xié)議分析
- modbus通信協(xié)議教程
- modbus通信協(xié)議教程
評(píng)論
0/150
提交評(píng)論