实验二 UDP通信实验 试验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 UDP通信实验 试验报告

网络程序设计 实验报告 实验名称:_________ UDP通信___________ 实验类型:_________验证型实验 ________ 指导教师:__________贾浩_______________ 专业班级:_______信安0904______ ___ 姓 名:_______谌军_____ ________ 学 号:__________________ 电子邮件:______448149700@______ 实验地点:_______东6A4-17_______________ 实 验 日 期:?? 2012 年? 3 月 29 日 实验成绩:__________________________ 一、实验目的二、实验bye” ?程序就结束 错误 1.客户端的字符比较函数放错位置了,本来是放在接受函数之后,我没注意放在了发送函数之后,所以客户端发送了BYE之后,客户端并不能结束程序。 三、实验结果 UDPServer UDPClient 四、讨论与分析 1.能否在接收数据之间不进行bind()调用?如果能,请说明可能的情况。 答:能,首先调用的是Sendto函数,系统会自动为程序绑定。因此即便调用recvfrom也可以。 2.能否使用connect()连接对方?为什么? 答:能客户创建套接字即可调用connect()连接对方服务器监听套接字,当服务器端的accept函数返回后,connect函数也返回。此时客户端使用Socket函数创建的套接字,服务器使用accept函数创建的套接字,双方就可以通讯了 五、实验者自评(主要从实验态度、方法、效果上给一个客观公正的自我评价) 这次实验比较简单,运行的时候要先运行服务端,再运行客户端。按照实验要求当任何一方发送字符“bye” ?程序就结束,因此服务端在接受数据函数后加上字符比较函数strcmp(),客户端也同样处理。实验结束基本上理解UDP通信的过程。 六、附录:关键代码(给出适当注释,可读性高) 客户端文件 char buff[1024]; //sockaddr_in addr; int nLen = sizeof(addr); while(TRUE) { // 发送数据 char szText[1024] ; cinszText; ::sendto(s, szText, strlen(szText), 0, (sockaddr*)addr, sizeof(addr)); //接受数据 int nRecv = ::recvfrom(s, buff, 1024, 0, (sockaddr*)addr, nLen); if(nRecv 0) { buff[nRecv] = \0; printf( 接收到数据(%s):%s, ::inet_ntoa(addr.sin_addr), buff); } //比较是不是字符“bye” if(strcmp(buff,bye)==0) break; } printf(\n); ::closesocket(s); return 0; 服务端文件 char buff[1024]; sockaddr_in addr; int nLen = sizeof(addr); while(TRUE) { //接受数据 int nRecv = ::recvfrom(s, buff, 1024, 0, (sockaddr*)addr, nLen); if(nRecv 0) { buff[nRecv] = \0; printf( 接收到数据(%s):%s, ::inet_ntoa(addr.sin_addr), buff); //比较是不是字符“bye” if(strcmp(buff,bye)==0) break; //发送数据 char szText[1024] ; cinszText; ::sendto(s, szText, strlen(szText), 0, (sockaddr*)addr, sizeof(addr)); } } printf(\n); ::closesocket(s);

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档