第一范文网 - 专业文章范例文档资料分享平台

基于UDP的文件传输实验报告

来源:用户分享 时间:2020-06-23 本文由权控江山 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《数据库技术 》实验报告 授课教师:张国富 苏兆品 zgf@hfut.edu.cn

实验报告

课程名称 《数据库技术》

学生姓名 ***

学 号 ********

专业班级 电子信息工程

指导教师

成 绩

2015年6月 8 日

《数据库技术 》实验报告 授课教师:张国富 苏兆品 zgf@hfut.edu.cn

实验名称: 基于UDP的文件传输 1.实验目的

(1) 熟练掌握Socket编程; (2) 分析UDP与TCP的异同。

2.实验设备和条件

硬件环境:PC机

操作系统: Windows 或者 Linux

语言环境: Visual C++ ,VS,GCC,Java均可

3.实验要求

参考TCP文件传输demo, 基于UDP实现send.mp3文件的传输,并测试接收到的文件与发送的文件是否一致。

请各位同学于第15周星期三或星期四上课时将纸质版(双面打印)上交!

4.实验内容:测试数据与实验结果(可以抓图粘贴)

(1)发送端代码。

#include \ #include #include

#define MAX_LENGTH 1024

int _tmain(int argc, _TCHAR* argv[]) {

exit(-1);

if (WSAStartup(wVersionRequested, &wsaData) != 0)//初始化ws2_32.dll动态库 {

printf(\);//Winsock初始化错误 wVersionRequested = MAKEWORD(2, 2); WSADATA wsaData; WORD wVersionRequested;

《数据库技术 》实验报告 授课教师:张国富 苏兆品 zgf@hfut.edu.cn

}

if (wsaData.wVersion != wVersionRequested) { }

//说明ws2_32.dll正确加载

printf(\); //创建套接字 SOCKET servsock; printf(\);

servsock = socket(AF_INET, SOCK_DGRAM, 0);//数据报套接字 int servport = 5555; int iSockErr = 0; //定义服务器地址结构 sockaddr_in udpaddr; int len = sizeof(udpaddr);

memset(&udpaddr, 0, sizeof(udpaddr)); udpaddr.sin_family = AF_INET; udpaddr.sin_port = htons(servport);

//将一个点分十进制IP地址字符串转换成32位数字表示的IP地址 udpaddr.sin_addr.s_addr = inet_addr(\);////INADDR_ANY

printf(\);//Winsock版本不匹配 WSACleanup();//结束对ws2_32.dll的调用 exit(-2);

//读取mp3文件 FILE *fp = NULL; errno_t err;

err = fopen_s(&fp, \七里香.mp3\, \); if (fp == NULL){ }

char buffer[MAX_LENGTH] = \;

printf(\); getchar(); exit(-5);

《数据库技术 》实验报告 授课教师:张国富 苏兆品 zgf@hfut.edu.cn

char *bufptr = buffer; int i = 0; while (!feof(fp)) { }

sendto(servsock, \, 0, 0, (struct sockaddr*)&udpaddr, len);

int iBytesRead = fread(bufptr, 1, MAX_LENGTH, fp);

int iRet = sendto(servsock, buffer, sizeof(buffer), 0, (struct sockaddr*)&udpaddr, len); if (iRet != SOCKET_ERROR) { } else { }

if (iRet == SOCKET_ERROR) { }

else if (iRet == 0) { }

if (iBytesRead == 0) { }

//printf(\

printf(\, i++, iBytesRead); Sleep(10);

printf(\); break;

printf(\); break;

//closesocket(clisock); printf(\); break;

printf(\); break;

iRet = recvfrom(servsock, buffer, sizeof(buffer), 0, (struct sockaddr*)&udpaddr, &len);

《数据库技术 》实验报告 授课教师:张国富 苏兆品 zgf@hfut.edu.cn

}

//关闭

shutdown(servsock, 2); closesocket(servsock); WSACleanup(); getchar(); return 0;

(2)接收端代码。

#include \ #include #include

#define MAX_LENGTH 1024*10

int _tmain(int argc, _TCHAR* argv[]) {

//说明ws2_32.dll正确加载

printf(\); }

exit(-2);

WSACleanup();//结束对ws2_32.dll的调用 if (wsaData.wVersion != wVersionRequested) {

printf(\);//Winsock版本不匹配 }

exit(-1);

if (WSAStartup(wVersionRequested, &wsaData) != 0)//初始化ws2_32.dll动态库 {

printf(\);//Winsock初始化错误 wVersionRequested = MAKEWORD(2, 2); WSADATA wsaData; WORD wVersionRequested;

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新高中教育基于UDP的文件传输实验报告 全文阅读和word下载服务。

基于UDP的文件传输实验报告 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1098032.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top