实验二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通信实验 实验类型: 验证型 指导教师: 贾浩 专业班级: 信安1204 姓 名: 马灿 学 号: 电子邮件: 实验地点: 东6 E307 实 验 日 期:?? 实验成绩:__________________________ 一、实验目的二、实验 SOCKET socket(int af,int type,int protocol); 由于采用数据报套接字进行数据传输,因此type参数必须设置为SOCK_DGRAM,protocol参数必须设置为IPPROTO_UDP 绑定本地地址到所创建的套接字函数bind() int bind(SOCKET s,const struct sockaddr* name,int namelen); 在实际编程时可以省略该函数,系统会自动绑定 接收数据函数recvfrom() int recvfrom(SOCKET s,char* buf,int len,int flags, struct sockaddr* from,int* fromlen); 发送数据函数sendto() int sendto(SOCKET s,const char* buf,int len,int flags, const struct sockaddr* to,int* tolen); 关闭套接字函数closesocket() int closesocket(SOCKET s); 数据报套接字编程模型时序和流程 为便于理解数据报套接字模型下的编程过程,用时序图表述如下(请注意,时序图不同于程序流程图,它只是对完成一次通信过程进行原理性描述的手段。 流套接字编程时序图 2.实验内容 (1)、认真理解数据报套接字编程模型,仔细阅读并调试运行UDPserve.cpp程序和UTPClient.cpp程序源代码,分析在服务端和客户端分别使用了哪些Winsock API函数,写入实验报告; (2)、修改UDPServer和UDPClient程序,设计一个简单的UDP通信程序,并达到以下要求: 双方能相互发送数据,并显示接收到的数据。 当收到对方的数据为“bye”时,能退出程序。 (3)、编程验证实验思考题中问题。 (4)、选做,服务器同多个客户端通信。 3.实现双方通信设计? 在数据报套接字编程模型中,客户端发送数据(也称发送端),服务器端接收数据(也称接收端)。实际上,由于数据报套接字编程模型也支持双向数据传递,因此,服务器端和客户端的概念已经比较模糊。在设计时有以下几个重要事项:? 1)?UDP编程属于阻塞模式,只能实现双方交替通信,也就是说服务端收到客户端发送 的消息后要给客户端回发消息后客户端才能继续给服务端发送消息。反之亦然。要实现单方多次发送消息是后面的实验内容。? 2)?UDP服务器程序UDPServer运行之后,进入无限循环,监听4567端口到来的UDP 封包,如果发现就将用户数据以字符串形式打印出来,然后继续给客户端发送消息。尤其要注意的是实验要求接收到“bye”就结束通信,因此每收到一个消息将其打印后还必须得对接收到的数据字符串进行检验,如果是“bye”那么就关闭套接字,结束通信。因为你向对方发送了“bye”的结束信号,对方要关闭套接字结束通信,所以于此同时你也得关闭套接字。实现方法很简单,就是在接收和发送数据的时候都对数据进行一次检验,如果是“bye”那么就可以结束了。? 3)?UDP客户端程序UDPCLient和服务器段程序类似,也是运行之后,进入无限循环, 监听服务端发来的UDP封包,如果发现就将用户数据以字符串形式打印出来,然后继续给客户端发送消息。尤其要注意的是实验要求接收到“bye”就结束通信,因此每收到一个消息将其打印后还必须得对接收到的数据字符串进行检验,如果是“bye”那么就关闭套接字,结束通信。因为你向对方发送了“bye”的结束信号,对方要关闭套接字结束通信,所以于此同时你也得关闭套

文档评论(0)

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

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

1亿VIP精品文档

相关文档