首页 基于UDP的客户与服务器通信程序

基于UDP的客户与服务器通信程序

举报
开通vip

基于UDP的客户与服务器通信程序实验名称 实验名称 基于UDP的客户与服务器通信程序 所属课程名称 TCP/IP协议与网络编程 实验时间 2010/11/12 实验地点 信控系二机房 学生姓名 陈红梅 实验器材及环境 PC机、Visual C++ 6.0 实验目的 1.​ 在C++环境中编写代码,调用Winsock AIP基本函数,实现一个基于UDP的客户/服务器通信程序。 实验内容 1.​ 熟练掌握函数的调用及其编程; 2.​ 理解掌握基于UDP的客户/服务器通信程序; 3.​ 理解函数的Winsock AIP基本函数的调用、返回值的类型、函数...

基于UDP的客户与服务器通信程序
实验名称 实验名称 基于UDP的客户与服务器通信程序 所属课程名称 TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 与网络编程 实验时间 2010/11/12 实验地点 信控系二机房 学生姓名 陈红梅 实验器材及环境 PC机、Visual C++ 6.0 实验目的 1.​ 在C++环境中编写代码,调用Winsock AIP基本函数,实现一个基于UDP的客户/服务器通信程序。 实验内容 1.​ 熟练掌握函数的调用及其编程; 2.​ 理解掌握基于UDP的客户/服务器通信程序; 3.​ 理解函数的Winsock AIP基本函数的调用、返回值的类型、函数功能等。 实验步骤 1、​ 进入Visual C++6.0 2、​ 创建一个空 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 sy1 3、​ 创建area.c文件 4、​ 流程图 5、​ 编写代码 程序一:服务器端 #include #include #include #define DEFAULT_PORT 5050 #define BUFFER_LENGTH 1024 #pragma comment(lib,"WS2_32.lib") void main() { int iPort=DEFAULT_PORT; WSADATA wsaData; SOCKET sSocket; int iLen,iRecv,iSend; struct sockaddr_in ser,cli; char send_buf[]="Hollo!I am a server"; char recv_buf[BUFFER_LENGTH]; printf("--------------------"); printf("Server waiting"); printf("--------------------"); if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) { printf("环境初始化错误:\n"); return; } sSocket=socket(AF_INET,SOCK_DGRAM,0); if(sSocket==INVALID_SOCKET) { printf("socket()函数调用失败:\n",WSAGetLastError()); return; } ser.sin_family=AF_INET; ser.sin_port=htons(iPort); ser.sin_addr.s_addr=htonl(INADDR_ANY); if(bind(sSocket,(LPSOCKADDR)&ser,sizeof(ser))==SOCKET_ERROR) { printf("bind()函数调用失败:\n",WSAGetLastError()); return; } iLen=sizeof(cli); memset(recv_buf,0,sizeof(recv_buf)); while(1) { iRecv=recvfrom(sSocket,recv_buf,BUFFER_LENGTH,0,(SOCKADDR*)&cli,&iLen); if(iRecv==SOCKET_ERROR) { printf("recvfrom()函数调用失败:\n",WSAGetLastError()); break; } else if(iRecv==0) break; else { printf("recvfrom():%d\n",recv_buf); printf("客户端的IP地址、端 口号 管理印章的关于负责的工作口号抗洪救灾口号体育运动口号宣誓口号公司企业文化口号 :%d\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port)); } iSend=sendto(sSocket,send_buf,sizeof(send_buf),0,(SOCKADDR*)&cli,sizeof(cli)); if(iSend==SOCKET_ERROR) { printf("sendto()函数调用失败:\n",WSAGetLastError()); break; } else if(iSend==0) break; else { printf("sendto():调用成功!\n"); } } closesocket(sSocket); WSACleanup(); } 流程图二: 程序二:客户机端程序 #include #include #include #define DEFAULT_PORT 5050 #define DATA_BUFFER 1024 #pragma comment(lib,"WS2_32.lib") void main(int argc,char* argv[]) { WSADATA wsaData; SOCKET sClient; int iPort=5050; int iLen; int isend,iRecv; char send_buf[]="Hello! I am a client"; char recv_buf[DATA_BUFFER]; struct sockaddr_in ser; if(argc<2) { printf("输入服务器的IP地址:\n"); return; } else memset(recv_buf,0,sizeof(recv_buf)); if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) { printf("Winsock环境初始化失败:\n"); return; } sClient=socket(AF_INET,SOCK_DGRAM,0); if(sClient==INVALID_SOCKET) { printf("socket()函数调用失败:%d\n",WSAGetLastError()); return; } ser.sin_family=AF_INET; ser.sin_port=htons(iPort); ser.sin_addr.s_addr=inet_addr(argv[1]); iLen=sizeof(ser); isend=sendto(sClient,send_buf,sizeof(send_buf),0,(struct sockaddr*)&ser,iLen); if(isend==SOCKET_ERROR) { printf("sendto()函数调用失败:%d\n",WSAGetLastError()); return; } else if(isend==0) return; else printf("sendto()调用成功:\n"); iRecv=recvfrom(sClient,recv_buf,sizeof(recv_buf),0,(struct sockaddr*)&ser,&iLen); if(iRecv==SOCKET_ERROR) { printf("recvfrom()函数调用失败:%d\n",WSAGetLastError()); return; } else if(iRecv==0) return; else { printf("sendto():%s\n",recv_buf); printf("-------------------------------\n"); } closesocket(sClient); WSACleanup(); } 6、编译程序 7、查看运行 8、出错分析 实验 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 1.​ 函数功能是:完成Winsock服务的初始化,从而可以在应用程序当中调用任何一个Winsock API函数; 2.​ 函数调用成功时返回0 3.​ 应用程序只能在一次成功的WSAStartup()调用之后才能进一步调用其它函数; 实验心得 完成此次的实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 单后我的感受有: 1、​ 对学过的知识不能够真正理解。 2、​ 对学过的理论知识不能在实际问题中学以致用。 3、​ 对循环语句的逻辑思维不理解。 4、​ 对一些语句的使用语法模糊不清。不能正确的用了流程图来反映其代码的含义及其做题思路。
本文档为【基于UDP的客户与服务器通信程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_469001
暂无简介~
格式:doc
大小:113KB
软件:Word
页数:8
分类:互联网
上传时间:2011-07-29
浏览量:51