实验二udp通信实验

实验二udp通信实验

ID:28015710

大小:167.92 KB

页数:7页

时间:2018-12-07

实验二udp通信实验_第1页
实验二udp通信实验_第2页
实验二udp通信实验_第3页
实验二udp通信实验_第4页
实验二udp通信实验_第5页
资源描述:

《实验二udp通信实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、网络程序设计实验报告实验名称:CDP通信实验实验类型:验证型指导教师:贾浩专业班级:信安1204姓名:马灿学号:20123252电子邮件:实验地点:东6E307实验日期:实验成绩:一、实验目的进一步理解WinsockAPI的调用方法Y解UDP协议的工作原理掌握UDP服务端程序和客户端程序的编写流程熟悉程序的调试方法。二、实验设计1.背景知识•数据报套接字编程使用的函数1)创建套接字函数socket()SOCKETsocket(intaf,inttype,intprotocol);由于采用数据报套接字进行数椐传输,W此type参数必须设置为SOCKDGRAM,protoco

2、l参数必须设置为IPPROTO_UDP2)绑定本地地址到所创建的套接字函数bindOintbind(SOCKETs,conststructsockaddr氺name,intnamelen);在实际编程时可以省略该函数,系统会自动绑定3)接收数据函数recvfromOintrccvfrom(SOCKETs,char氺buf,intlcn,intflags,structsockaddr*from,int氺fromlen):4)发送数据函数sendtoOintsendto(SOCKETs,constchar氺buf,intlen,intflags,conststructsock

3、addr*to,int氺tolen);5)关朗蜜接字函数closcsocket()intclosesocket(SOCKETs);•数据报套接字编程模型时序和流程为便于理解数据报套接字模型下的编程过程,用吋序图表述如下(请注意,时序图不同于程序流程图,它只是对完成一次通信过程进行原理性描述的手段。socket()客户端bind()socket()recvfrom()bind()阻塞,等待客息连接遗<服务谘求sendto()处理服务请求sendto()recvfrom()closesocket()closesocket()流套接字编程时序图1.实验内容(1)、认真理解数据报

4、套接字编程模型,仔细阅读并调试运行UDPscrvc.cpp程序和UTPClient.epp程序源代码,分析在服务端和客户端分别使用了哪些WinsockAPI函数,写入实验报告;(2)、修改UDPServer和UDPClient程序,设计一个简单的UDP通信程序,并达到以下要求:①双方能相互发送数据,并显示接收到的数据。②当收到对方的数据为“bye”时,能退出程序。(3)、编程验证实验思考题中W题。(4)、选做,服务器同多个客户端通信。2.实现双方通信设计在数据报套接字编程模型中,客户端发送数据(也称发送端),服务器端接收数据(也称接收端)。实际上,由于数据报套接字编程模型

5、也支持双向数据传递,因此,服务器端和客户端的概念已经比较模糊。在设计时冇以下几个重要事项:1)UDP编程属于阻塞模式,只能实现双方交替通信,也就是说服务端收到客户端发送的消息后要给客广端冋发消息后客广端才能继续给服务端发送消息。反之亦然。要实现争方多次发送消息是后面的实验内容。2)UDP服务器程序UDPServer运行之后,进入无限循环,监听4567端口到来的UDP封包,如果发现就将用户数据以字符串形式打印出来,然后继续给客户端发送消息。尤其耍注意的是实验要求接收到“bye”就结束通信,因此每收到一个消息将其打印后还必须得对接收到的数据字符申进行检验,如果是“bye”那么

6、就关闭套接字,结束通信。因为你向对方发送了“bye”的结束信号,对方要关闭套接字结束通信,所以于此同吋你也得关闭套接字。实现方法很简单,就是在接收和发送数据的吋候都对数据进行一次检验,如果是“bye”那么就吋以结束了。1)UDP客户端程序UDPCLicnt和服务器段程序类似,也是运行之后,进入无限循环,监听服务端发来的UDP封毡,如果发现就将用户数据以字符串形式打印出来,然后继续给客户端发送消息。尤其要注意的是实验要求接收到“bye”就结朿通信,因此每收到一个消息将其打印后还必须得对接收到的数据字符串进行检验,如果是“bye”那么就关闭套接字,结束通信。因为你向对方发送了

7、“bye”的结束信号,对方要关闭套接字结束通信,所以于此同时你也得关闭套接字。实现方法很简单,就是在接收和发送数据的时候都对数据进行一次检验,如果是“bye”那么就可以结束了。三、实验过程1、实验分析与设计2、编码实现3、程序调试在这个实验中主要遇到以下儿个问题:1)问题描述:在一方接收到“bye”结束信息之后对方还能给自己发信息,但是自己不能向对方发信息,也就是没有关闭对方的通信套接字。原因或解决办法:在接收数据和发送数据的时候都要进行一次检测,不论是接收的数据还是发送的数据,只耍检测到为“bye”那么就关闭套接字结束通信,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。