欢迎来到天天文库
浏览记录
ID:44068274
大小:286.60 KB
页数:9页
时间:2019-10-18
《基于winsocket的网络收发数据包程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、网络程序设计作业基于winsocket的网络收发数据包程序设计基于UDP协议的数据传输程序成员:14020310087叶乐炜14020310089黄炜14020310090张振宇基本流程如下图所示的无连接的通信过程1•服务端的具体实现如下:ttinclude#include#includettincludelipragmaconsent(lib,"ws2_32.lib")ttdeFinePORT8888一SdeFineADDR"127.0.8.111intmain(intargc,char*argu[
2、])3、;exit(8);>printf("InitialisedsuccessfullyAn");创建socketprintf("CreatingUDPSocket");il:((sersocket=socket(AF_INETfSOCK_DGRAMfIPPROTO_UDP))==INUALID_SOCKET)printF(MCreationofsocketFailed%diB,WSAGetLastError());USACleanup();return0;}printFC'UDPSocketCreatedSuccessfullyiB);设置SOCKADDRJN地址结构s4、erAddr.sin_Family=AF_INET;serAddr.sin_port=htons(PORT);serAddr.sinaddr.s_addr=inet_addr(ADDR);绑定套接字if(bind(sersocketJs0CKADDR*y&serAddr,sizeoF(serAddr))==S0CKET_ERR0R)printf("Waitingtoreceiuedat5、a>a);for(i=0;;i**)6、n(buf),0,(SOCKADDR*)&serAddr,sizeoF(serAddr)))==SOCKET_ERROR)printFCTRROR:sendtoFailedwithQrror%d",WSAGgtLastError());closesocket(sersocket);WSACleanupO;return0;若发现exit则退出处理循环■iF(strncmp(buf,,lexit,l,sizeoF(l,exitl,))==0)printffexitthereceiuingloop");break;}关闭套接字closesocket(sersocket);USAC7、leanup();return0;2.UDP的客户端实现:向服务器发送数据,然后等待服务端将刚发送的数据送回,接着将其显示在屏幕上,代码与服务端类似,差别在于下面的for循环。客户端进入for循环无限发送信息给服务端直到输入exit停止循环for(i=0;;i*+)
3、;exit(8);>printf("InitialisedsuccessfullyAn");创建socketprintf("CreatingUDPSocket");il:((sersocket=socket(AF_INETfSOCK_DGRAMfIPPROTO_UDP))==INUALID_SOCKET)printF(MCreationofsocketFailed%diB,WSAGetLastError());USACleanup();return0;}printFC'UDPSocketCreatedSuccessfullyiB);设置SOCKADDRJN地址结构s
4、erAddr.sin_Family=AF_INET;serAddr.sin_port=htons(PORT);serAddr.sinaddr.s_addr=inet_addr(ADDR);绑定套接字if(bind(sersocketJs0CKADDR*y&serAddr,sizeoF(serAddr))==S0CKET_ERR0R)printf("Waitingtoreceiuedat
5、a>a);for(i=0;;i**)6、n(buf),0,(SOCKADDR*)&serAddr,sizeoF(serAddr)))==SOCKET_ERROR)printFCTRROR:sendtoFailedwithQrror%d",WSAGgtLastError());closesocket(sersocket);WSACleanupO;return0;若发现exit则退出处理循环■iF(strncmp(buf,,lexit,l,sizeoF(l,exitl,))==0)printffexitthereceiuingloop");break;}关闭套接字closesocket(sersocket);USAC7、leanup();return0;2.UDP的客户端实现:向服务器发送数据,然后等待服务端将刚发送的数据送回,接着将其显示在屏幕上,代码与服务端类似,差别在于下面的for循环。客户端进入for循环无限发送信息给服务端直到输入exit停止循环for(i=0;;i*+)
6、n(buf),0,(SOCKADDR*)&serAddr,sizeoF(serAddr)))==SOCKET_ERROR)printFCTRROR:sendtoFailedwithQrror%d",WSAGgtLastError());closesocket(sersocket);WSACleanupO;return0;若发现exit则退出处理循环■iF(strncmp(buf,,lexit,l,sizeoF(l,exitl,))==0)printffexitthereceiuingloop");break;}关闭套接字closesocket(sersocket);USAC
7、leanup();return0;2.UDP的客户端实现:向服务器发送数据,然后等待服务端将刚发送的数据送回,接着将其显示在屏幕上,代码与服务端类似,差别在于下面的for循环。客户端进入for循环无限发送信息给服务端直到输入exit停止循环for(i=0;;i*+)
此文档下载收益归作者所有