DSP

黑马程序员_UDP传输

2019-07-13 12:23发布

    ----------- android培训java培训、java学习型技术博客、期待与您交流! ------------ Java中提供了一个DatagramSocket类进行UDP数据传输,建立UDP传输的步骤如下: 1、建立发送端(接收端)的DatagramDocket对象; 2、建立封装发送数据(接收数据)的数据包DatagramPacket对象; 3、调用DatagramSocket的send()方法发送数据(调用DatagramSocket的receive()方法发送数据); 4、关闭Socket。 注意:发送端、接收端是两个独立的运行程序,但是它们的建立步骤是相似的。 代码示例: 发送端代码: import java.net.*; public class UDPSend{ public static void main(String[] args)throws Exception{ //1、创建UDP服务 DatagramSocket ds=new DatagramSocket(); //2、将要发送的数据封装进DatagramPacket byte[] buf="发送端的数据".getBytes(); DatagramPacket dp=new DatagramPacket(buf,buf.length, InetAddress.getByName("192.168.1.100"),10000); //此处的IP地址是本机地址,仅用于演示。 //3、发送数据 ds.send(dp); //4、关闭Socket ds.close(); } } 接收端代码: import java.net.*; public class UDPReceive{ public static void main(String[] args)throws Exception{ //1、创建UDP服务; //构造此对象时需要指定端口号,且该端口号要与发送端指定的相同 DatagramSocket ds=new DatagramSocket(10000); //2、创建DatagramPacket对象,用于接收数据 byte[] buf=new byte[1024]; DatagramPacket dp=new DatagramPacket(buf,buf.length); //3、接收数据 ds.receive(dp); String address=dp.getAddress().getHostAddress(); int port=dp.getPort(); byte[] data=dp.getData(); System.out.println("AddressOfSend:"+address); System.out.println("PortOfSend:"+port); System.out.println(new String(data,0,dp.getLength())); //4、关闭Socket ds.close(); } } 注意:上述代码可能抛SocketException、IOException等异常,为了展示UDP传输的基本用法未对这些异常进行处理,实际编程时需要对它们进行处理。