應(yīng)用層系統(tǒng)服務(wù)分析試驗報告_第1頁
應(yīng)用層系統(tǒng)服務(wù)分析試驗報告_第2頁
應(yīng)用層系統(tǒng)服務(wù)分析試驗報告_第3頁
應(yīng)用層系統(tǒng)服務(wù)分析試驗報告_第4頁
應(yīng)用層系統(tǒng)服務(wù)分析試驗報告_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、綜合性實驗項目簡介學(xué)院名稱(公章):軟件學(xué)院2014-2015學(xué)年第一學(xué)期填表日期:實驗課程名稱TCP/IP協(xié)議分析實驗項目名稱應(yīng)用層系統(tǒng)服務(wù)分析實驗實驗項目性質(zhì)1、綜合性,2、設(shè)計性主講教師開課年級2012開課專業(yè)12網(wǎng)絡(luò)工程實驗地點開課日期2014年9月28日至2014年12月28日開課時間第14周星期二3-4節(jié)實驗項目簡介:實驗?zāi)康?1)掌握單用戶客戶端與服務(wù)器的連接和數(shù)據(jù)處理;(2)理解并掌握Socket模型(3)掌握Linux平臺網(wǎng)絡(luò)數(shù)據(jù)的傳送方法。實驗內(nèi)容(1)編寫基于流套接字的TCP/IP通信程序;(2)編寫基于流套接字的網(wǎng)絡(luò)通信原型系統(tǒng);(3)要求至少綜合使用到實驗?zāi)康闹刑岬降?/p>

2、二條或二條以上內(nèi)容。實驗條件學(xué)院提供網(wǎng)絡(luò)實驗室,1臺/學(xué)生微型計算機,安裝有協(xié)議分析綜合教學(xué)系統(tǒng)。實驗原理使用TCP套接字編程可以基于TCP/IP協(xié)議面向連接的協(xié)議,它分為客戶端和服務(wù)器端,主要的實現(xiàn)過程為:服務(wù)器端:(1)使用socket()函數(shù)創(chuàng)建套接子。(2)將創(chuàng)建的套接字綁定到指定的地址結(jié)構(gòu)。(3)Listen()函數(shù)設(shè)置套接字為監(jiān)聽狀態(tài),使服務(wù)器進入被打開狀態(tài)。(4)接受客戶端的請求,建立連接(5)接受,應(yīng)答客戶端的數(shù)據(jù)請求(6)終止連接客戶端:(1)使用socket()函數(shù)創(chuàng)建套接子。(2)調(diào)用connect。函數(shù)建立一個與TCP服務(wù)器的連接(3)發(fā)送數(shù)據(jù)請求,接受服務(wù)器的數(shù)據(jù)應(yīng)答

3、(4)終止連接流程圖如下:serversocket()bind()Tlisten()accept()os自動調(diào)用bind()函數(shù)解析出IP隨機分配一個閑置的編口綁定阻塞直到接受客戶socket編請求*三次握手connect()read()數(shù)據(jù)請求wwrite()處理請求write()數(shù)據(jù)響應(yīng)read()關(guān)閉連接closeclose()服務(wù)器端代碼:server.c#include#include#include#include#include#include#include#include#include#include#definePORT1234#defineBACKLOG2#define

4、MAXCHARSIZE1000voidprocess_client(intconnetfd,structsockaddr_inclient);intmain(void)intlistenfd,connectfd;structsockaddrinserver,client;intsin_size;intopt=SO_REUSEADDR;pid_tpid;if(listenfd=socket(AF_INET,SOCK_STREAM,0)=-1)perror(Createsocketfailed.);exit(-1);setsockopt(listenfd,SOL_SOCKET,SO_REUSEAD

5、DR,&opt,sizeof(opt);bzero(&server,sizeof(server);server.sin_family=AF_INET;server.sin_port=htons(PORT);server.sin_addr.s_addr=htonl(INADDR_ANY);if(bind(listenfd,(structsockaddr*)&server,sizeof(structsockaddr)=-1)perror(Binderror.);exit(-1);if(listen(listenfd,BACKLOG)=-1)perror(listenerror.);exit(-1)

6、;sin_size=sizeof(structsockaddr_in);while(1)if(connectfd=accept(listenfd,(structsockaddr*)&client,&sin_size)=-1)perror(accepterror.);exit(-1);if(pid=fork()0)close(connectfd);continue;elseif(pid=0)close(listenfd);process_client(connectfd,client);exit(1);elseperror(Forkerror.n);exit(0);close(listenfd)

7、;voidprocess_client(intconnectfd,structsockaddr_inclient)charrecvbufMAXCHARSIZE;charsendbufMAXCHARSIZE;intrecvlen,i;printf(Yougetaconnectionfrom%s:%dn,inet_ntoa(client.sin_addr),client.sin_port);send(connectfd,Youconnecttheserver.n,29,0);while(recvlen=recv(connectfd,recvbuf,MAXCHARSIZE,0)recvbufrecv

8、len=0;printf(Receivemessage:%sn,recvbuf);for(i=0;irecvlen;i+)sendbufi=recvbufrecvlen-i-1;sendbufrecvlen=0;send(connectfd,sendbuf,strlen(sendbuf),0);close(connectfd);客戶端代碼:client.c#include#include#include#include#include#include#include#include#definePORT1234#defineMAXDATASIZE1000intmain(intargc,char

9、*argv)intfd,numbytes;charbufMAXDATASIZE;structhostent*he;structsockaddr_inserver;inti=1;if(argc!=2)printf(Usage:%n,argv0);exit(-1);if(he=gethostbyname(argv1)=NULL)perror(gethostbynameerror.);exit(1);if(fd=socket(AF_INET,SOCK_STREAM,0)=-1)perror(Createsocketfailed);exit(1);bzero(&server,sizeof(server

10、);server.sin_family=AF_INET;server.sin_port=htons(PORT);server.sin_addr=*(structin_addr*)he-h_addr);if(connect(fd,(structsockaddr*)&server,sizeof(structsockaddr)=-1)perror(Binderror.);exit(1);if(numbytes=recv(fd,buf,MAXDATASIZE,0)=-1)perror(recverror.);exit(1);bufnumbytes=0;printf(ServerMessage:%sn,

11、buf);while(i)printf(Inputyourmessage(maxsizeis100):);scanf(%s,buf);if(strlen(buf)1)i=0;if(numbytes=send(fd,buf,strlen(buf),0)=-1)perror(Senderror.);exit(1);if(numbytes=recv(fd,buf,MAXDATASIZE,0)=-1)perror(readerror.n);exit(1);close(fd);運行結(jié)果:服務(wù)器端等待客戶端的連接,客戶端并返回自己的IP地址,客戶端可以給服務(wù)器端發(fā)送信息???。七1口工總山。出/蹤合性案取一

12、亡X文件編輯查看。終端標(biāo)簽幫助計roollocalhost琮合性實驗工gcc-oserverserver.croolailocalhost睇合性實睡產(chǎn).fserverYougel白connectionfrom127*0*0.1:42129Receivemessage:Rcccicmessage:arcReceivemessage:youI客戶端顯示連接成功并可以向服務(wù)器端發(fā)送信息(不大于100個字符)r。七locaiho與七二,綜合性實鰲-DX文件編短查看終端標(biāo)簽幫助rootMocalliasl琮合性實驗產(chǎn)gc-oc1ientclient.c*(rootMocalhost綜含性實驗#./client127*0-0.ServerMessage:Youconnecttheserver,Inputyourincssagefmaxsizcts100);howInputyourmcssagefnwxstzeis100)JareInputyourttiessagefmaxsizets100):youInputyourlEtssagcmaxiizcis100):root

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論