《数据库技术 》实验报告 授课教师:张国富 苏兆品 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
#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
#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下载服务。
相关推荐: