TCPUDP通信實驗報告_第1頁
TCPUDP通信實驗報告_第2頁
TCPUDP通信實驗報告_第3頁
TCPUDP通信實驗報告_第4頁
TCPUDP通信實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.\TCP/UDP通信實驗報告學(xué)號:姓名:.\實驗二:TCP/UDP通信實驗報告一、實驗?zāi)康氖炀氄莆誙DP、TCPClient/Server模式的通信原理。謝謝閱讀二、實驗內(nèi)容傳輸控制協(xié)議(TransportControlProtocol)是一種面向連接的,可謝謝閱讀靠的傳輸層協(xié)議。面向連接是指一次正常的 TCP傳輸需要通過在精品文檔放心下載TCP客戶端和TCP服務(wù)端建立特定的虛電路連接來完成,該過程通常被稱為“三次握手”??煽啃钥梢酝ㄟ^很多種方法來提供保證,在這里我們關(guān)心的是數(shù)據(jù)序列和確認(rèn)。TCP通過數(shù)據(jù)分段(Segment)中的序列號保證所有傳輸?shù)臄?shù)據(jù)可以在遠(yuǎn)端按照正常的次序進(jìn)行重組,而且通過確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾?。要通過TCP傳輸數(shù)據(jù),必須在兩端主機(jī)之間建立連接。舉例說明,TCP客戶端需要和TCP服務(wù)端建立連接,過程如圖12-1所示。謝謝閱讀圖12-1TCP客戶端與服務(wù)端連接過程.\①、第一步中,客戶端向服務(wù)端提出連接請求。這時TCPSYN標(biāo)感謝閱讀志置位??蛻舳烁嬖V服務(wù)端序列號區(qū)域合法,需要檢查??蛻舳嗽谥x謝閱讀TCP報頭的序列號區(qū)中插入自己的 ISN。服務(wù)端收到該TCP分段感謝閱讀后,在②、第二步以自己的ISN回應(yīng)(SYN標(biāo)志置位),同時確認(rèn)收到客戶端的第一個TCP分段(ACK標(biāo)志置位)。謝謝閱讀③、在第三步中,客戶端確認(rèn)收到服務(wù)端的ISN(ACK標(biāo)志置位)。到此為止建立完整的TCP連接,開始全雙工模式的數(shù)據(jù)傳輸過程。謝謝閱讀根據(jù)以上內(nèi)容編寫一個TCPClient/Server模式的通信程序。事感謝閱讀實上網(wǎng)絡(luò)程序是由兩個部分組成的--客戶端和服務(wù)器端。它們的建立精品文檔放心下載步驟如下:服務(wù)器端:socket-->bind-->listen-->accept精品文檔放心下載客戶端:socket-->connect。三、實驗步驟實驗按下述步驟進(jìn)行:(1)編寫UDP、TCPClient/Server模式的通信程序;謝謝閱讀(2)調(diào)試并運行自己編寫的實現(xiàn)程序;(3)了解TCPClient/Server模式的工作原理,比較二者的不同,如精品文檔放心下載出現(xiàn)異常情況,在實驗報告中寫出原因分析;.\(4)保留編寫的實現(xiàn)程序在你的用戶目錄下,以備輔導(dǎo)教師檢查。精品文檔放心下載四、實驗代碼/*UDP*//**客戶端的工作流程:首先調(diào)用socket函數(shù)創(chuàng)建一個Socket,填寫服務(wù)器地址及端謝謝閱讀口號,*從標(biāo)準(zhǔn)輸入設(shè)備中取得字符串,將字符串傳送給服務(wù)器端,并接收服務(wù)器端返回的精品文檔放心下載字*符串。最后關(guān)閉該socket。*Author:xiaopeng01121435*Date:2015/05/16*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>//定義端口號#definePORT5432intmain(intargc,char**argv)感謝閱讀{intcli_sockfd;socklen_taddrlen;charseraddr[14];structsockaddr_incli_addr;精品文檔放心下載charbuffer[256];intlen;.\if(argc!=2){//為輸入IP地址作為參數(shù)的時候提示使用方法printf("使用方法:./client\n");感謝閱讀exit(0);}/*建立socket*/cli_sockfd=socket(AF_INET,SOCK_DGRAM,0);精品文檔放心下載if(cli_sockfd<0){printf("創(chuàng)建socket失敗!\n");感謝閱讀return1;}/*填寫sockaddr_in*/addrlen=sizeof(structsockaddr_in);精品文檔放心下載bzero(&cli_addr,addrlen);cli_addr.sin_family=AF_INET;謝謝閱讀//cli_addr.sin_addr.s_addr=htonl(INADDR_ANY);cli_addr.sin_port=htons(PORT);精品文檔放心下載if(inet_pton(AF_INET,argv[1],&cli_addr.sin_addr)<=0){printf("ip地址轉(zhuǎn)換失敗,IP:%s!\n",argv[1]);精品文檔放心下載exit(0);}bzero(buffer,sizeof(buffer));謝謝閱讀/*從標(biāo)準(zhǔn)輸入設(shè)備取得字符串*/printf("請輸入要發(fā)送的消息:\n");fgets(buffer,256,stdin);精品文檔放心下載/*將字符串傳送給server端*/fer),0,(structsockaddr*)&cli_addr,addrlen);謝謝閱讀printf("消息已發(fā)出!等待服務(wù)器的響應(yīng)...\n");精品文檔放心下載/*接收server端返回的字符串*/len=recvfrom(cli_sockfd,buffer,sizeof(buffer),0,(structsockaddr*)&cli_addr,&addrlen);精品文檔放心下載//printf("receivefrom%s\n",inet_ntoa(cli_addr.sin_addr));printf("從服務(wù)器收到:%s",buffer);精品文檔放心下載close(cli_sockfd);return0;}服務(wù)器端程序如下:/*UDP*//**服務(wù)器的工作流程:首先調(diào)用socket函數(shù)創(chuàng)建一個Socket,然后調(diào)用bind函數(shù)精品文檔放心下載將其與本機(jī)*地址以及一個本地端口號綁定,接收到一個客戶端時,服務(wù)器顯示該客戶端的IP地精品文檔放心下載址,并將字串*返回給客戶端。*Author:xiaopeng01121435*Date:2015/05/16*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#definePORT5432intmain(intargc,char**argv)精品文檔放心下載{intser_sockfd;intlen;//intaddrlen;socklen_taddrlen;charseraddr[100];structsockaddr_inser_addr;感謝閱讀/*建立socket*/ser_sockfd=socket(AF_INET,SOCK_DGRAM,0);精品文檔放心下載if(ser_sockfd<0){printf("Icannotsocketsuccess\n");感謝閱讀return1;}printf("Socket創(chuàng)建成功!\n");/*填寫sockaddr_in結(jié)構(gòu)*/addrlen=sizeof(structsockaddr_in);謝謝閱讀bzero(&ser_addr,addrlen);ser_addr.sin_family=AF_INET;感謝閱讀ser_addr.sin_addr.s_addr=htonl(INADDR_ANY);謝謝閱讀ser_addr.sin_port=htons(PORT);感謝閱讀/*綁定客戶端*/if(bind(ser_sockfd,(structsockaddr*)&ser_addr,addrlen)<0)精品文檔放心下載{printf("連接錯誤!\n");return1;}printf("綁定Scoket成功!,等待客戶端的請求...\n");感謝閱讀while(1){bzero(seraddr,sizeof(seraddr));謝謝閱讀len=recvfrom(ser_sockfd,seraddr,sizeof(seraddr),0,(struct感謝閱讀sockaddr*)&ser_addr,&addrlen);謝謝閱讀/*顯示client端的網(wǎng)絡(luò)地址*/printf("客戶端IP地址:%s\n",inet_ntoa(ser_addr.sin_addr));感謝閱讀/*顯示客戶端發(fā)來的字串*/printf("接收到的消息:%s",seraddr);感謝閱讀/*將字串返回給client端*/sendto(ser_sockfd,seraddr,len,0,(structsockaddr*)&ser_addr,addrlen);精品文檔放心下載}close(ser_sock

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論