版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数据库技术》实验报告授课教师:张国富苏兆品zgf@实验报告课程名称课程名称《数据库技术》学生姓名***学号********专业班级电子信息工程指导教师成绩2015年6月8日实验名称:基于UDP的文件传输1.实验目的熟练掌握Socket编程;分析UDP与TCP的异同。2.实验设备和条件硬件环境:PC机操作系统:Windows或者Linux语言环境:VisualC++,VS,GCC,Java均可3.实验要求参考TCP文件传输demo,基于UDP实现send.mp3文件的传输,并测试接收到的文件与发送的文件是否一致。请各位同学于第15周星期三或星期四上课时将纸质版(双面打印)上交!4.实验内容:测试数据与实验结果(可以抓图粘贴)(1)发送端代码。#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动态库 { printf("WSAStartup()failed!\n");//Winsock初始化错误 exit(-1); sendto(servsock,"",0,0,(structsockaddr*)&udpaddr,len); //关闭 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动态库 { printf("WSAStartup()failed!\n");//Winsock初始化错误 exit(-1); } if(wsaData.wVersion!=wVersionRequested) { printf("TheversionofWinsockisnotsuited!\n");//Winsock版本不匹配 WSACleanup();//结束对ws2_32.dll的调用 exit(-2); } //说明ws2_32.dll正确加载 printf("Loadws2_32.dllsuccessfully!\n"); //获取本机IP地址 charPCname[100]={""}; char*IPaddress=NULL; gethostname(PCname,sizeof(PCname)); printf("LocalHostnameis%s.\n",PCname); structhostentFAR*lpHostEnt=gethostbyname(PCname); if(lpHostEnt==NULL) { //产生错误 printf("gethostbynamefailed!\n"); return-1; } //获取IP LPSTRlpAddr=lpHostEnt->h_addr_list[0]; if(lpAddr) { structin_addrinAddr; memmove(&inAddr,lpAddr,4); //转换为标准格式 IPaddress=inet_ntoa(inAddr);//将一个32位数字表示的IP地址转换成点分十进制IP地址字符串 if(sizeof(IPaddress)==0) printf("gethostIPfailed!\n"); else printf("LocalHostIPis%s.\n",IPaddress); } //创建套接字 //SOCKETservsock,clisock; SOCKETservsock; printf("CreateSocket...\n"); servsock=socket(AF_INET,SOCK_DGRAM,0);//数据报套接字 intservport=5555; intiSockErr=0; //定义服务器地址结构 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); //将一个点分十进制IP地址字符串转换成32位数字表示的IP地址 udpaddr.sin_addr.s_addr=inet_addr(IPaddress);//""//INADDR_ANY //绑定套接字到服务器地址结构 printf("Binding...\n"); iSockErr=bind(servsock,(sockaddr*)&udpaddr,sizeof(udpaddr)); if(iSockErr==SOCKET_ERROR) { printf("Bindingfailed:%d\n",WSAGetLastError());//根据不同的错误类型进行不同的处理 exit(-3); } //函数调用成功,进行其他处理 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)简单的代码移植后接收端是否能正确接收?如果不能请分析原因,并尝试调整发送端读取数据的大小和延迟时间,以及接收端缓冲区的大小来解决数据丢包问题。给出参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SDMTGM 0013-2024酯硬化水玻璃砂湿法再生成套设备技术规范
- T/CCIA 0030-2025防滑陶瓷砖防滑性能等级要求及试验方法
- T/JSCTS 95-2026公路工程绿色预制梁场建设指南
- T/HZBX 086-2024金莲花软胶囊中荭草苷和牡荆苷的含量测定 高效液相色谱法
- T/ZJBS 002-2024城市公共标识系统施工规范
- T/UNP 380-2024农用机械液压油缸
- DB32/T 4973.7-2024核与辐射突发事件卫生应急处置技术规范 第7部分:稳定性碘的使用指导
- 广东省部分学校2027届高三上学期9月供题训练语文试卷(无答案)
- 2025-2026年软件工程需求管理专项训练题库
- 2025-2026年钳工装配与调试实战练习题
- 公立医院领导人员管理办法-2017-2026完整对比版
- 2027届上海市浦东新区洋泾中学物理高二上期中考试试题含解析
- 2026重庆渝中区社区工作者及后备人员招聘《综合知识》模拟试卷
- 《10 谁在运动》课件2026-2027学年湘科版四年级上册科学
- 医疗机构麻醉药品和精神药品管理规定2026解读
- 《中华人民共和国生态环境法典》测试题(含参考答案)
- 【新教材】2026年秋人教版(PEP)五年级上册英语全册教案(含教学计划)
- DBJ50-T-061-2021 预拌砂浆生产与应用技术标准
- 2026语文新教材 7.我的战友邱少云 课件
- 电子科技大学学生手册
- 基于QFD创新型品管圈的区域药学服务新模式构建(药剂科)(药房)(门诊)(药房门诊)
评论
0/150
提交评论