UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无链接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。 java
UDP的特征: 数组
Socket 网络
Java中使用UDP的步骤 socket
发送端 spa
接收端 .net
代码案例以下 code
发送端 事务
package cc.enfp.socket.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; /* * UDP 发送端程序 */ public class SendTest { public static void main(String[] args) throws IOException { /* * 一、建立socket服务 */ DatagramSocket socket = new DatagramSocket(); /* * 二、提供相应的发送=信息 */ byte[] data = "开启udp之旅".getBytes(); //指明接收端的IP地址,和接收端的端口号 DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getLocalHost(), 10000); /* * 三、使用socket的发送方法,进行数据的发送 */ socket.send(packet); /* * 四、关闭链接,释放资源 */ socket.close(); } }
接收端 ip
package cc.enfp.socket.udp; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; /* * UDP 接收端 */ public class ReceiveTest { public static void main(String[] args) throws Exception { /* * 一、建立socket服务 * 须要指明监视的端口号,而且要和发送端指定的接受端口的端口号一致 */ DatagramSocket socket = new DatagramSocket(10000); /* * 二、构建DatagramPacket packet用于接收数据 * packet只是为了接受数据,因此只须要指明字节数组和长度就能够 */ byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, data.length); /* * 三、经过socket的receive方法将数据封装到packet中 */ socket.receive(packet);//该方法是阻塞 /* * 四、经过packet提供的相应方法获取发送端发送的信息 */ InetAddress ip = packet.getAddress(); System.out.println("发送端的IP: "+ip.getHostAddress()); //使用String的重载将返回的byte[]类型的内容转换成字符串 String content = new String(packet.getData(), 0, packet.getLength()); System.out.println("发送端发送的内容为: "+content); /* * 5.关闭链接,释放资源 */ socket.close(); } }