第04章 UDP应用编程.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 UDP应用编程 4.1 UDP基础知识 4.2 UDP应用编程技术 4.3 利用UDP协议进行广播和组播 4.1 UDP基础知识 UDP(User Datagram Protocol)全称是用户数据报协议。是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。 与TCP相比,UDP有如下一些特点: 优点 (1)UDP基于无连接的协议,速度比TCP更快。对于强调传输性能而不是传输完整性的应用(例如音频和多媒体应用),UDP是最好的选择; (2)UDP不但支持一对一连接,而且也支持一对多连接,可以使用广播的方式多地址发送,而TCP仅支持一对一的通信; (3)UDP与TCP的报头比是8:20,这使得UDP消耗的网络带宽更少 (4)UDP传输的数据有消息边界,而TCP没有消息边界。 4.1 UDP基础知识 缺点 (1) UDP缺乏双方的握手信号,因此发送方无法了解数据报是否已经到达目标主机。如果在从发送方到接收方的传递过程中出现了数据包丢失,协议本身并不能做出任何检测或提示,因此可靠性不如TCP。 (2) UDP没有任何对双方会话的支持,当接收多个数据报时,不能保证各数据包到达的顺序与发出的顺序相同。当然,UDP的这种乱序性基本上很少出现,通常只会在网络非常拥挤的情况下才可能发生。 UDP与TCP的共同点 都是构建于底层IP之上的传输层协议 4.1 UDP基础知识 4.2 UDP应用编程技术 4.2.1 UdpClient类 4.2.2 发送和接收数据的方法 4.2.1 UdpClient类 UdpClient类提供了发送和接收无连接的UDP数据报的方便的方法。封装了底层的套接字,并分别提供了对套接字进一步封装后的同步和异步操作的方法,降低了UDP应用编程的难度。 与TCP协议有TcpListener类和TcpClient类不同,UDP协议只有UdpClient类,这是因为UDP协议是无连接的协议,所以只需要一种Socket。 4.2.1 UdpClient类(续) 位于System.Net.Sockets命名空间下 构造函数有四种重载形式(见教材P94)。编写客户端程序时,常用形式为: UdpClient UdpClient=new UdpClient(“”, 51888) 它相当于: UdpClient udpClient=new UdpClient(); udpClient.Connect(, 51888); 思考:UDP的Connect和TCP的Connect有什么不同? 4.2.1 UdpClient类(续) 4.2.1 UdpClient类(续) 4.2.2 发送和接收数据的方法 编写基于UDP的应用程序时,关键在于如何实现数据的发送和接收。由于UDP不需要建立连接,因此可以在任何时候直接向网络中的任意主机发送UDP数据。在同步阻塞方式下,可以使用UdpClient对象的Send方法和Receive方法。 Send:可直接将数据发送到远程主机,并返回发送数据的长度,Send方法发送数据的类型为byte数组。 Receive:能够在指定的本地IP地址和端口上接收数据,该方法带一个引用类型的IPEndPoint实例,并将接收到的数据作为byte数组返回。 4.2.2 发送和接收数据的方法(续) udpClient.Send (Byte[], Int32) 将UDP数据报发送到远程主机。 Byte[]:指定发送的数据 Int32:发送数据的数据长度 说明: 这种重载形式假定UDP客户端已经通过Connect方法指定了默认的远程主机,或者在实例化UdpClient时已经指定了远程服务器的IP和端口 4.2.2 发送和接收数据的方法(续) UdpClient.Send (Byte[], Int32, IPEndPoint) 将 UDP数据报发送到位于指定远程终结点的主机. Byte[]:待发送到远程主机的数据 Int32: 待发送到远程主机的数据长度 IPEndPoint :远程主机端点,包含了应用程序连接到主机上的服务所需的IP地址和端口信息。 说明:这种重载形式在参数中指定了远程主机的端点,在调用该方法前不需要指定远程主机的信息,如(不需要通过Connect方法指定远程主机端点,不需要在实例化UdpClient时指定远程服务器的IP和端口) 4.2.2 发送和接收数据的方法(续) UdpClient.Send(Byte[],Int32, String, Int32)将UDP数据报发送到指定的远程主机上的指定端口。 Byte[]:待发送到远程主机的数据 Int32:待发送到远程主机的数据长度 String:远程主机名 Int32:

文档评论(0)

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

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

1亿VIP精品文档

相关文档