版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《數(shù)據(jù)庫技術(shù)》實驗報告授課教師:張國富蘇兆品zgf@實驗報告課程名稱課程名稱《數(shù)據(jù)庫技術(shù)》學(xué)生姓名***學(xué)號********專業(yè)班級電子信息工程指導(dǎo)教師成績2015年6月8日實驗名稱:基于UDP的文件傳輸1.實驗?zāi)康氖炀氄莆誗ocket編程;分析UDP與TCP的異同。2.實驗設(shè)備和條件硬件環(huán)境:PC機(jī)操作系統(tǒng):Windows或者Linux語言環(huán)境:VisualC++,VS,GCC,Java均可3.實驗要求參考TCP文件傳輸demo,基于UDP實現(xiàn)send.mp3文件的傳輸,并測試接收到的文件與發(fā)送的文件是否一致。請各位同學(xué)于第15周星期三或星期四上課時將紙質(zhì)版(雙面打印)上交!4.實驗內(nèi)容:測試數(shù)據(jù)與實驗結(jié)果(可以抓圖粘貼)(1)發(fā)送端代碼。#include"stdafx.h"#include<Winsock2.h>#include<stdio.h>#defineMAX_LENGTH1024int_tmain(intargc,_TCHAR*argv[]){ WORDwVersionRequested; WSADATAwsaData; wVersionRequested=MAKEWORD(2,2); if(WSAStartup(wVersionRequested,&wsaData)!=0)//初始化ws2_32.dll動態(tài)庫 { printf("WSAStartup()failed!\n");//Winsock初始化錯誤 exit(-1); sendto(servsock,"",0,0,(structsockaddr*)&udpaddr,len); //關(guān)閉 shutdown(servsock,2); closesocket(servsock); WSACleanup(); getchar(); return0;}(2)接收端代碼。#include"stdafx.h"#include<Winsock2.h>#include<stdio.h>#defineMAX_LENGTH1024*10int_tmain(intargc,_TCHAR*argv[]){ WORDwVersionRequested; WSADATAwsaData; wVersionRequested=MAKEWORD(2,2); if(WSAStartup(wVersionRequested,&wsaData)!=0)//初始化ws2_32.dll動態(tài)庫 { printf("WSAStartup()failed!\n");//Winsock初始化錯誤 exit(-1); } if(wsaData.wVersion!=wVersionRequested) { printf("TheversionofWinsockisnotsuited!\n");//Winsock版本不匹配 WSACleanup();//結(jié)束對ws2_32.dll的調(diào)用 exit(-2); } //說明ws2_32.dll正確加載 printf("Loadws2_32.dllsuccessfully!\n"); //獲取本機(jī)IP地址 charPCname[100]={""}; char*IPaddress=NULL; gethostname(PCname,sizeof(PCname)); printf("LocalHostnameis%s.\n",PCname); structhostentFAR*lpHostEnt=gethostbyname(PCname); if(lpHostEnt==NULL) { //產(chǎn)生錯誤 printf("gethostbynamefailed!\n"); return-1; } //獲取IP LPSTRlpAddr=lpHostEnt->h_addr_list[0]; if(lpAddr) { structin_addrinAddr; memmove(&inAddr,lpAddr,4); //轉(zhuǎn)換為標(biāo)準(zhǔn)格式 IPaddress=inet_ntoa(inAddr);//將一個32位數(shù)字表示的IP地址轉(zhuǎn)換成點分十進(jìn)制IP地址字符串 if(sizeof(IPaddress)==0) printf("gethostIPfailed!\n"); else printf("LocalHostIPis%s.\n",IPaddress); } //創(chuàng)建套接字 //SOCKETservsock,clisock; SOCKETservsock; printf("CreateSocket...\n"); servsock=socket(AF_INET,SOCK_DGRAM,0);//數(shù)據(jù)報套接字 intservport=5555; intiSockErr=0; //定義服務(wù)器地址結(jié)構(gòu) sockaddr_inudpaddr,cliaddr; memset(&udpaddr,0,sizeof(udpaddr)); memset(&cliaddr,0,sizeof(cliaddr)); intclilen=sizeof(cliaddr); udpaddr.sin_family=AF_INET; udpaddr.sin_port=htons(servport); //將一個點分十進(jìn)制IP地址字符串轉(zhuǎn)換成32位數(shù)字表示的IP地址 udpaddr.sin_addr.s_addr=inet_addr(IPaddress);//""http://INADDR_ANY //綁定套接字到服務(wù)器地址結(jié)構(gòu) printf("Binding...\n"); iSockErr=bind(servsock,(sockaddr*)&udpaddr,sizeof(udpaddr)); if(iSockErr==SOCKET_ERROR) { printf("Bindingfailed:%d\n",WSAGetLastError());//根據(jù)不同的錯誤類型進(jìn)行不同的處理 exit(-3); } //函數(shù)調(diào)用成功,進(jìn)行其他處理 charbuff[256]="\0"; charbuffer[MAX_LENGTH]="\0"; intlen=0; //接收歡迎詞 memset(buffer,0,sizeof(buffer)); FILE*fp=NULL; errno_terr; err=fopen_s(&fp,"七里香.mp3","wb"); inti=0; while(1) { len=recvfrom(servsock,buffer,sizeof(buffer),0,(structsockaddr*)&cliaddr,&clilen); if(len==SOCKET_ERROR){ printf("recverror!\n"); break; } elseif(len==0) { printf("recvfinished!\n"); break; } buffer[len]=0; printf("receivedpacket%dlenth:%d\n\n",i++,len); fwrite(buffer,1,len,fp); sendto(servsock,buff,sizeof(buff),0,(structsockaddr*)&cliaddr,clilen); Sleep(8); //printf("%d\n",&len); } fclose(fp); //shutdown(clisock,2); // closesocket(clisock); shutdown(servsock,2); closesocket(servsock); WSACleanup(); getchar(); return0;}(3)簡單的代碼移植后接收端是否能正確接收?如果不能請分析原因,并嘗試調(diào)整發(fā)送端讀取數(shù)據(jù)的大小和延遲時間,以及接收端緩沖區(qū)的大小來解決數(shù)據(jù)丟包問題。給出參數(shù)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教育治理視域下師德問責(zé)制度化研究
- 課題申報參考:江南風(fēng)景攝影的審美范式及其傳統(tǒng)轉(zhuǎn)化研究
- 課題申報參考:價值醫(yī)療視角下安寧療護(hù)經(jīng)濟(jì)可持續(xù)性機(jī)理解析及促進(jìn)機(jī)制設(shè)計
- 二零二五版道路照明設(shè)施節(jié)能補(bǔ)貼申請合同4篇
- 2025年度大型商場裝修設(shè)計與施工一體化承包合同范本4篇
- 2025年金昌b2貨運資格證多少道題
- 二零二五年度輪胎產(chǎn)品綠色環(huán)保認(rèn)證服務(wù)合同4篇
- 基于云計算的2025年度企業(yè)級應(yīng)用集成合同3篇
- 中介和房東的委托協(xié)議 2篇
- 二零二五年度商業(yè)綜合體消防安全與安保服務(wù)合同3篇
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 承包鋼板水泥庫合同范本(2篇)
- 人教版(2024年新教材)七年級上冊英語Unit 7 Happy Birthday 單元整體教學(xué)設(shè)計(5課時)
- DLT 572-2021 電力變壓器運行規(guī)程
- 公司沒繳社保勞動仲裁申請書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點梳理)
- 車借給別人免責(zé)協(xié)議書
- 應(yīng)急預(yù)案評分標(biāo)準(zhǔn)表
- “網(wǎng)絡(luò)安全課件:高校教師網(wǎng)絡(luò)安全與信息化素養(yǎng)培訓(xùn)”
評論
0/150
提交評論