《UDP协议开发》PPT课件

《UDP协议开发》PPT课件

ID:45097693

大小:321.34 KB

页数:26页

时间:2019-11-09

《UDP协议开发》PPT课件_第1页
《UDP协议开发》PPT课件_第2页
《UDP协议开发》PPT课件_第3页
《UDP协议开发》PPT课件_第4页
《UDP协议开发》PPT课件_第5页
资源描述:

《《UDP协议开发》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章UDP协议开发11.1UDP协议概述11.2UDP协议的套接字编程技术11.3使用UdpClient简化UDP编程11.4使用UDP协议进行广播和组播11.1UDP协议概述UDP协议的特点UDP是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。UDP与TCP的比较优点无连接(速度快)、可用于广播(组播)、通信量小、有消息边界缺点不可靠、安全性差、不保证报文顺序交付SendTo()方法和ReceiveFrom()方法UDP无需建立连接,可在任何时候直接向网络中的任意主机发送UDP数据包。当然须指明目标地

2、址,可以直接用SendTo()方法完成这个功能。将创建的套接字与本地IPEndPoint进行绑定后,也可以用ReceiveFrom()方法接收远程主机发来的数据。使用这种方法,发送和接收UDP数据包的一般步骤为:1)创建一个Socket对象。2)如果要接收UDP数据包,需要将创建的套接字与本地IPEndPoint进行绑定。如果仅仅为了发送,则不需要绑定。3)使用SendTo()方法和ReceiveFrom()方法发送和接收数据包。11.2UDP协议的套接字编程技术Send()方法和Receive()方法为了和某一个远程主机通信,也

3、可以在创建套接字后,使用Connect()方法先和远程主机建立连接,然后直接用Send()方法和Receive()方法发送和接收数据。由于使用的是UDP数据包套接字,在通信中并没有实际的链路,但是Connect()方法将套接字信息设置到IPEndPoint对象后,Send()方法和Receive()方法就可以自动使用IPEndPoint对象的信息。解决UDP数据丢失问题UDP不保证数据被真正传送到目的地。解决方法要求远程主机返回一个应答信息,表明已经接收到发送的数据,如果在规定时间内没有收到返回的应答信息,就认为该数据包已经丢失,

4、然后重新发送刚才发送的数据包。实现步骤为1)向远程主机发送一条消息。2)等待远程主机回送应答信息。3)如果收到应答信息,则退出本循环,继续发送下一条消息。如果在规定时间内没有收到应答信息,则重新发送。4)检查重复发送次数,如果达到规定的重复次数,则终止发送,并显示相关错误信息。程序实例一——使用SendTo()和ReceiveFrom()publicstaticvoidMain(){intlength;byte[]bytes=newbyte[1024];Socketsocket=newSocket(AddressFamily.In

5、terNetwork,SocketType.Dgram,ProtocolType.Udp);IPEndPointmyHost=newIPEndPoint(IPAddress.Any,6789);socket.Bind(myHost);IPEndPointremote=newIPEndPoint(IPAddress.Parse("127.0.0.1"),6789);EndPointremoteHost=(EndPoint)remote;Console.Write("输入发送的信息:");stringstr=Console.ReadLi

6、ne();bytes=System.Text.Encoding.Unicode.GetBytes(str);socket.SendTo(bytes,bytes.Length,SocketFlags.None,remoteHost);while(true){Console.WriteLine("等待接收...");length=socket.ReceiveFrom(bytes,refremoteHost);str=System.Text.Encoding.Unicode.GetString(bytes,0,length);Consol

7、e.WriteLine("接收到信息:{0}",str);if(str=="bye")break;Console.Write("输入回送信息(bye退出):");str=Console.ReadLine();bytes=System.Text.Encoding.Unicode.GetBytes(str);socket.SendTo(bytes,remoteHost);}socket.Close();Console.WriteLine("对方已经byebye了,请按回车键结束。");Console.ReadLine();}程序实例二

8、——使用Send()和Receive()publicstaticvoidMain(){intlength;byte[]bytes=newbyte[1024];Socketsocket=newSocket(AddressFamily.I

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

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

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