资源描述:
《《网络协议及编程》实验指导书4》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《网络协议及编程》实验指导书实验四console界面udp编程实验目的:编程实现console界面udp的c/s编程。实验要求:使用vc++6.0实现,每人独立完成。实验说明:客户端和服务器端的编程步骤如下:实验步骤:1.新建工程。工程类型选“win32consoleapplication”,输入工程名称,选取工程存储位置,“下一步”,“一个空工程”,完成。2.选取“FileView”,点“SourceFiles”,按鼠标右键,选取“添加文件到目录”,输入文件名,点“确定”。3.开始编程。先编服务器程序。#incl
2、ude#includevoidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1
3、
4、HIBYTE(wsaData.wVersion)!=1){WSACleanup();retur
5、n;}SOCKETsockSrv=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6101);bind(sockSrv,(sockaddr*)&addrSrv,sizeof(sockaddr));charsendBuf[100];charrecvBuf[100];chartem
6、pBuf[100];intlen=sizeof(sockaddr);SOCKADDR_INaddrClient;while(1){recvfrom(sockSrv,tempBuf,strlen(tempBuf),0,(sockaddr*)&addrClient,&len);if('!'!=tempBuf[0]){sprintf(recvBuf,"%ssay:%s",inet_ntoa(addrClient.sin_addr),tempBuf);printf("%s",recvBuf);printf("pleas
7、einputyourdata:");gets(sendBuf);sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(sockaddr*)&addrClient,len);}else{printf("%srequesttoquitthechatplatform.",inet_ntoa(addrClient.sin_addr));sendto(sockSrv,"q",strlen("q")+1,0,(sockaddr*)&addrClient,len);break;}}close
8、socket(sockSrv);WSACleanup();}1.编译。在“工程“,”设置”,“链接”里,把ws2_32.lib加入。2.编译执行。3.再编客户程序。#include#includevoidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){
9、return;}if(LOBYTE(wsaData.wVersion)!=1
10、
11、HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKETsockClient=socket(AF_INET,SOCK_DGRAM,0);SOCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//htonlhtonsinet_addrinet_ntoaaddrSrv.sin_family=AF_I
12、NET;addrSrv.sin_port=htons(6101);charsendBuf[100];chartempBuf[100];charrecvBuf[100];intlen=sizeof(sockaddr);while(1){printf("pleaseinputyourdata:");gets(sendBuf);sendto(sockClient,