欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于UDP的客户与服务器通信程序培训资料.doc

    • 资源ID:52307729       资源大小:267KB        全文页数:14页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于UDP的客户与服务器通信程序培训资料.doc

    Good is good, but better carries it.精益求精,善益求善。基于UDP的客户与服务器通信程序-实验名称基于UDP的客户与服务器通信程序所属课程名称TCP/IP协议与网络编程实验时间2010/11/12实验地点信控系二机房学生姓名陈红梅实验器材及环境PC机、VisualC+6.0实验目的1. 在C+环境中编写代码,调用WinsockAIP基本函数,实现一个基于UDP的客户/服务器通信程序。实验内容1 熟练掌握函数的调用及其编程;2 理解掌握基于UDP的客户/服务器通信程序;3 理解函数的WinsockAIP基本函数的调用、返回值的类型、函数功能等。实验步骤1、 进入VisualC+6.02、 创建一个空工程sy13、 创建area.c文件4、 流程图否iRecv=recvfrom()调用失败输出调用失败开始确定端口号输出服务器WSAStartupsListen=SocketBind()是是是否否否否1isend=sendto()!=0调用成功Closesocket(saccept)Closesocket(saccept)结束=0!=0输出接收到的数据、IP地址、端口号=0编写代码程序一:服务器端#include<Winsock2.h>#include<stdio.h>#include<stdlib.h>#defineDEFAULT_PORT5050#defineBUFFER_LENGTH1024#pragmacomment(lib,"WS2_32.lib")voidmain()intiPort=DEFAULT_PORT;WSADATAwsaData;SOCKETsSocket;intiLen,iRecv,iSend;structsockaddr_inser,cli;charsend_buf="Hollo!Iamaserver"charrecv_bufBUFFER_LENGTH;printf("-");printf("Serverwaiting");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;elseif(iRecv=0)break;elseprintf("recvfrom():%dn",recv_buf);printf("客户端的IP地址、端口号:%dn",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;elseif(iSend=0)break;elseprintf("sendto():调用成功!n");closesocket(sSocket);WSACleanup();流程图二:结束提示输入地址否输出调用失败开始带参main()定义变量WSAStartupSocket()Recvfrom()sendto()是是是是是否否否否WSAcleanup()Closesocket()Largc<2接收数据初始化缓冲区程序二:客户机端程序#include<Winsock2.h>#include<stdio.h>#include<stdlib.h>#defineDEFAULT_PORT5050#defineDATA_BUFFER1024#pragmacomment(lib,"WS2_32.lib")voidmain(intargc,char*argv)WSADATAwsaData;SOCKETsClient;intiPort=5050;intiLen;intisend,iRecv;charsend_buf="Hello!Iamaclient"charrecv_bufDATA_BUFFER;structsockaddr_inser;if(argc<2)printf("输入服务器的IP地址:n");return;elsememset(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()函数调用失败:%dn",WSAGetLastError();return;ser.sin_family=AF_INET;ser.sin_port=htons(iPort);ser.sin_addr.s_addr=inet_addr(argv1);iLen=sizeof(ser);isend=sendto(sClient,send_buf,sizeof(send_buf),0,(structsockaddr*)&ser,iLen);if(isend=SOCKET_ERROR)printf("sendto()函数调用失败:%dn",WSAGetLastError();return;elseif(isend=0)return;elseprintf("sendto()调用成功:n");iRecv=recvfrom(sClient,recv_buf,sizeof(recv_buf),0,(structsockaddr*)&ser,&iLen);if(iRecv=SOCKET_ERROR)printf("recvfrom()函数调用失败:%dn",WSAGetLastError();return;elseif(iRecv=0)return;elseprintf("sendto():%sn",recv_buf);printf("-n");closesocket(sClient);WSACleanup();6、编译程序7、查看运行8、出错分析实验总结1 函数功能是:完成Winsock服务的初始化,从而可以在应用程序当中调用任何一个WinsockAPI函数;2 函数调用成功时返回03 应用程序只能在一次成功的WSAStartup()调用之后才能进一步调用其它函数;实验心得完成此次的实验报告单后我的感受有:1、 对学过的知识不能够真正理解。2、 对学过的理论知识不能在实际问题中学以致用。3、 对循环语句的逻辑思维不理解。4、 对一些语句的使用语法模糊不清。不能正确的用了流程图来反映其代码的含义及其做题思路。-

    注意事项

    本文(基于UDP的客户与服务器通信程序培训资料.doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开