文档详情

3_UDP应用编程.ppt

发布:2017-07-02约4.41千字共20页下载文档
文本预览下载声明
3 UDP应用编程 3.1 UDP协议基础知识 3.2 UDP应用编程技术 3.3 使用UDP协议进行广播和组播 3.1 UDP协议基础知识 UDP协议的特点 UDP是一个简单的、面向数据报的无连接协议,提供了快速但不一定可靠的传输服务。 UDP与TCP的比较 优点 无连接(速度快)、可用于广播(组播)、消耗网络带宽小、有消息边界 缺点 不可靠、安全性差、不保证报文顺序交付 编写UDP应用程序时,有两种技术: ?直接使用Socket类 ?使用UdpClient类 UdpClient类对基础Socket进行了封装、发送和接 收数据时不必考虑底层套接字收发时必须处理的一些 细节问题,从而简化了UDP应用编程的难度,提高了 编程效率 。 ?UdpClient类的构造函数 1) UdpClient() 创建一个新的UdpClient对象,并自动分配合适的本地IPv4地址和端口号。例如: UdpClient udpClient = new UdpClient(); //指定默认远程主机和端口号 udpClient.Connect(, 51666); Byte[] sendBytes = System.Text.Encoding.Unicode.GetBytes(你好!); //发送给默认远程主机 udpClient.Send(sendBytes, sendBytes.Length); 2) UdpClient(int port) 创建一个与指定的端口绑定的新的UdpClient实例,并自动 分配合适的本地IPv4地址。例如: UdpClient udpClient = new UdpClient(51666); 3) UdpClient(IPEndPoint localEp) 创建一个新的UdpClient实例,该实例与包含本地IP地址和 端口号的IPEndPoint实例绑定。例如: IPAddress address = IPAddress.Parse(); IPEndPoint iep = new IPEndPoint(address, 51666); UdpClient udpClient =new UdpClient(iep); 4) UdpClient(string remoteHost,int port) 创建一个新的UdpClient实例,自动分配合适的本地IP地址和端口号,并将它与指定的远程主机和端口号联合。例如: UdpClient udpClient =new UdpClient(,8080); 使用这种构造函数,一般不必再调用Connect方法。 ?发送数据 Send方法使用哪种方式取决于以下两点:一是UdpClient是如何连接到远程端口的, 二是UdpClient实例是如何创建的。 1) Send(byte[] data, int length, IPEndPoint iep) 这种重载形式用于知道了远程主机IP地址和端口的情况下,它有三个参数:数据、数据长度、远程IPEndPoint对象。 2) Send(byte[] data, int length, string remoteHostName, int port) 这种重载形式用于知道了远程主机名和端口号的情况下,利用Send方法直接把UDP数据报发送到远程主机。 3) Send(byte[] data, int length) 这种重载形式假定UDP客户端已经通过Connect方法指定了默认的远程主机,因此,只要用Send方法指定发送的数据和数据长度即可。 ?接收数据 UdpClient对象的Receive方法能够在指定的本地IP地址和端口上接收数据,该方法带一个引用类型的IPEndPoint实例,并将接收到的数据作为byte数组返回。例如: IPEndPoint remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 51666); UdpClient udpClient = new UdpClient(remoteIpEndPoint); IPEndPoint iep=new IPEndPoint(IPAddress.Any,0); Byte[] receiveBytes
显示全部
相似文档