public class SendDemo { public static void main(String[] args) throws IOException { // 创建发送端Socket对象 DatagramSocket datagramSocket = new DatagramSocket(); // 创建数据,并把数据打包 byte[] bytes = "Hello udp".getBytes(); InetAddress inetAddress = InetAddress.getByName("192.168.0.127"); int port = 10086; DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length,inetAddress, port); // 调用Socket对象的发送方法发送数据包 datagramSocket.send(datagramPacket); } }
接收代码
public class ReceiveDemo { public static void main(String[] args) throws IOException { DatagramSocket datagramSocket = new DatagramSocket(10086); byte[] bytes = new byte[1024]; int length = bytes.length; DatagramPacket datagramPacket = new DatagramPacket(bytes, length); datagramSocket.receive(datagramPacket); // 解析数据包,并显示在控制台 // 获取对方的ip // public InetAddress getAddress() InetAddress address = datagramPacket.getAddress(); String ip = address.getHostAddress(); // public byte[] getData():获取数据缓冲区 // public int getLength():获取数据的实际长度 byte[] bys2 = datagramPacket.getData(); int len = datagramPacket.getLength(); String s = new String(bys2, 0, len); System.out.println(ip + "传递的数据是:" + s); datagramSocket.close(); } }
运行的时候,要保证两台机器在同一个局域网上,其次要先运行接收端
通过运行,我们发现,udp确实是一个不可靠的连接,它没有管你是否接收到了
它的作用就是发送,不去管你接收端是否接收到了