UDP服务端:
package com.example.demo.learn.socket.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
* Socket服务端使用UDP协议,协议不可靠
*/
public class UdpServer {
public static void main(String[] args) throws IOException {
int port = 8070;
DatagramSocket socket = new DatagramSocket(port);
System.out.println("UDP服务启动........");
byte[] buf = new byte[1024];
// 数据包
DatagramPacket dp = new DatagramPacket(buf, buf.length);
// 等待客户端进行发送, 如果客户端一直不发送,会有阻塞效果
socket.receive(dp);
String data = new String(dp.getData(), 0 ,dp.getLength());
System.out.println("客户端发送的数据是: " + data);
socket.close();
}
}
UDP客户端 :
package com.example.demo.learn.socket.udp;
import java.io.IOException;
import java.net.*;
/**
* UDP客户端
*/
public class UdpClient {
public static void main(String[] args) throws IOException {
System.out.println("udp 客户端发送数据开始......");
DatagramSocket socket = new DatagramSocket();
String data = "UDP客户端模拟的数据";
byte[] bytes = data.getBytes();
// 封装数据包
DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName("172.16.200.207"), 8070);
// 发送数据包
socket.send(dp);
socket.close();
}
}