- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
udp协议编程一
Visual C# UDP协议编程 目标: 熟悉什么是UDP协议 掌握基于UDP协议的套接字 掌握UdpClient类的用法 什么是UDP UDP(UserDatagramProtocol)协议就是“用户数据报协议” 它是一种无连接的协议,无连接主要是和TCP协议相比较的。 开发难度 由于UDP协议并不需要进行确定的连接,所以编写基于UDP协议的应用程序比起编写基于TCP协议的应用程序要简单些 (程序中可以不需要考虑连接和一些异常的捕获工作) UDP协议的缺点 由于不提供可靠数据的传输,当计算机之间利用UDP协议传送数据的时候,发送方只管发送数据,而并不确认数据是否被对方接收。这样就会导致某些UDP协议数据包在传送的过程中丢失,尤其网络质量不令人满意的情况下,丢失数据包的现象会更严重。这就是为什么在网络上传输重要数据不采用UDP协议的原因。 UDP协议的优点 但对于那些不重要的数据,或者即使丢失若干数据包也不影响整体性的数据,如音频数据,视频数据等,采用UDP协议就是一个非常不错的选择 。 如目前网络流行的很多即时聊天程序,如OICQ和ICQ等,采用的就是UDP协议。同时虽然UDP协议无法保证数据可靠性,但具有对网络资源开销较小,数据处理速度快的优点,所以在有些对数据安全性要求不是很高的情况下,采用UDP协议也是一个非常不错的选择。 用套接字实现基于UDP协议的通信 由于UDP是一种无连接的协议.因此,为了使服务器应用能够发送和接收UDP数据包,程序员必须处理两件事: 1、创建一个Socket对象 2、将创建的套接字对象与本地IPEndPoint进行绑定(对于不需要在指定UDP端口上接收UDP数据包的客户机,不需要执行该步骤) 完成上述两个步骤后,所创建的套接字就能够在IPEndPoint上接收流入的UDP数据包,或者将流出的UDP数据包发送到网络中任意其他设备上. 创建基于UDP的套接字 serverSocket=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp); IPEndPoint IPEP=new IPEndPoint(IPAddress.Parse(127.0.0.1),5566); serverSocket.Bind(IPEP); 在UDP通信中,Socket套节字使用SendTo()和ReceiveFrom()方法来发送和接收数据 int SendTo(byte[] data, EndPoint Remote); 发送一个字节数据到由不同的Remote所指定的EndPoint上. int ReceiveFrom(byte[] data, ref EndPoint Remote); 其中,第二个参数不是一个EndPoint 对象,而是一个EndPoint 的引用,该方法将从远程设备中将EndPoint 信息放置到参数所表示的EndPoint 对象的内存中. 实现基于UDP的聊天室 说明:与UDP进行通信的远程设备通信必须对发送数据和接收数据一致.如果客户机和服务器同时等待接收数据,两个设备都将处于阻塞状态.为了达成这个协议,服务器和客户机之间遵循下列规则: 发送问好消息 接收欢迎消息 发送消息 接收问好消息 发送欢迎消息 发送消息 客户端 服务器端 UdpClient类 UdpClient类能够简化网络程序员的UDP网络程序设计工作 UdpClient类的构造函数 UdpClient():创建一个没有与任何指定的地址或端口绑定的新UdpClient实例 UdpClient(int port):创建一个新UdpClient实例与指定的UDP端口进行绑定 UdpClient(IPEndPoint iep):创建一个新UdpClient实例与指定的本地IP地址和端口进行绑定 UdpClient(string host,int port):创建一个新UdpClient实例与任意IP地址和端口进行绑定,并将它与指定的远程IP地址和端口进行联合 UdpClient 方法 (1)当UDP客户端知道远程计算机IP地址: Send方法的调用语法如下: public int Send ( byte[] dgram , int bytes , IPEndPoint endPoint ) ;参数说明: dgram 要发送的 UDP数据文报(以字节数组表示)。 bytes 数据文报中的字节数。 endPoint 一个 IPEndPoint,它表示要将数据文报发送到的主机和端口。 返回值 已发送的字节数。 UdpClient发送UDP数据包例子 IPAddress HostI
文档评论(0)