第04章_udp应用编程

第04章_udp应用编程

ID:5331445

大小:350.50 KB

页数:32页

时间:2017-11-23

第04章_udp应用编程_第1页
第04章_udp应用编程_第2页
第04章_udp应用编程_第3页
第04章_udp应用编程_第4页
第04章_udp应用编程_第5页
资源描述:

《第04章_udp应用编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章UDP应用编程4.1UDP基础知识4.2UDP应用编程技术4.3利用UDP协议进行广播和组播4.1UDP基础知识UDP(UserDatagramProtocol)全称是用户数据报协议。是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。与TCP相比,UDP有如下一些特点:优点(1)UDP基于无连接的协议,速度比TCP更快。对于强调传输性能而不是传输完整性的应用(例如音频和多媒体应用),UDP是最好的选择;(2)UDP不但支持一对一连接,而且也支持一对多连接,可以使用广播的方式多地址发送,而TCP仅支持一对一的通信

2、;(3)UDP与TCP的报头比是8:20,这使得UDP消耗的网络带宽更少(4)UDP传输的数据有消息边界,而TCP没有消息边界。4.1UDP基础知识缺点(1)UDP缺乏双方的握手信号,因此发送方无法了解数据报是否已经到达目标主机。如果在从发送方到接收方的传递过程中出现了数据包丢失,协议本身并不能做出任何检测或提示,因此可靠性不如TCP。(2)UDP没有任何对双方会话的支持,当接收多个数据报时,不能保证各数据包到达的顺序与发出的顺序相同。当然,UDP的这种乱序性基本上很少出现,通常只会在网络非常拥挤的情况下才可能发生。UDP与TCP的共同点

3、都是构建于底层IP之上的传输层协议4.1UDP基础知识UDPTCP连接无连接面向连接速度无需建立连接,速度较快需要建立连接,速度较慢目的主机一对一,一对多仅能一对一带宽UDP报头较短,消耗带宽更少消耗更多的带宽消息边界有无可靠性低高顺序无序有序4.2UDP应用编程技术4.2.1UdpClient类4.2.2发送和接收数据的方法4.2.1UdpClient类UdpClient类提供了发送和接收无连接的UDP数据报的方便的方法。封装了底层的套接字,并分别提供了对套接字进一步封装后的同步和异步操作的方法,降低了UDP应用编程的难度。与TCP协议

4、有TcpListener类和TcpClient类不同,UDP协议只有UdpClient类,这是因为UDP协议是无连接的协议,所以只需要一种Socket。4.2.1UdpClient类(续)位于System.Net.Sockets命名空间下构造函数有四种重载形式(见教材P94)。编写客户端程序时,常用形式为:UdpClientUdpClient=newUdpClient(“www.abcd.com”,51888)它相当于:UdpClientudpClient=newUdpClient();udpClient.Connect("www.abc

5、d.com",51888);思考:UDP的Connect和TCP的Connect有什么不同?4.2.1UdpClient类(续)Send()发送数据报Receive()接收数据报BeginSend()开始从连接的socket中异步发送数据报BeginReceive()开始从连接的socket中异步接收数据报EndSend()结束挂起的异步发送数据报EndReceive()结束挂起的异步接受数据报JoinMulticastGroup()将UdpClient添加到多路广播组DropMulticastGroup()将UdpClient退出多路广

6、播组Close()关闭Dispose()释放资源UdpClient类的常用方法4.2.1UdpClient类(续)Active获取或者设置一个值指示是否已建立默认远程主机Available获取或设置缓冲器中可用数据报的数量Client获取或设置基础网络套接字EnableBroadcast是否接收或发送广播ExclusiveAddressUse是否允许一个客户端使用指定端口UdpClient类的常用属性4.2.2发送和接收数据的方法编写基于UDP的应用程序时,关键在于如何实现数据的发送和接收。由于UDP不需要建立连接,因此可以在任何时候直接

7、向网络中的任意主机发送UDP数据。在同步阻塞方式下,可以使用UdpClient对象的Send方法和Receive方法。Send:可直接将数据发送到远程主机,并返回发送数据的长度,Send方法发送数据的类型为byte数组。Receive:能够在指定的本地IP地址和端口上接收数据,该方法带一个引用类型的IPEndPoint实例,并将接收到的数据作为byte数组返回。4.2.2发送和接收数据的方法(续)udpClient.Send(Byte[],Int32)将UDP数据报发送到远程主机。Byte[]:指定发送的数据Int32:发送数据的数据长度

8、说明:这种重载形式假定UDP客户端已经通过Connect方法指定了默认的远程主机,或者在实例化UdpClient时已经指定了远程服务器的IP和端口4.2.2发送和接收数据的方法(续)UdpCl

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

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

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