在 TCP/IP 协议的传输层除了一个 TCP 协议之外,还有一个 UDP 协议。
UDP 协议是用户数据报协议的简称,也用于网络数据的传输。
下面是在 Java 中使用 UDP 协议发送数据的步骤:
代码示例:
//发送方
public class Client {
public static void send(){
try {
//1. 使用 DatagramSocket() 创建一个数据包套接字
DatagramSocket socket = new DatagramSocket();
String text = "test";
byte[] buf = text.getBytes();
///2. 使用 DatagramPacket() 创建要发送的数据包
DatagramPacket packet = new DatagramPacket(buf, buf.length, InetAddress.getLocalHost(), 9002);
//3. 使用 DatagramSocket 类的 send() 方法发送数据包
socket.send(packet);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
send();
}
}
//接收方
public class Server {
public void server(){
try {
System.out.println("start===================start");
//1. 使用 DatagramSocket() 创建一个数据包套接字,并将其绑定到指定的端口(与发送方端口一致)
DatagramSocket socket = new DatagramSocket(9002);
while(true){
//2. 使用 DatagramPacket 创建字节数组来接收数据包。
byte[] buf = new byte[2048];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//3.使用 DatagramPacket 类的 receive() 方法接收 UDP 包。
socket.receive(packet);
byte[] data = packet.getData();
String msg = new String(data, 0, packet.getLength());
System.out.println(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Thread(){
@Override
public void run() {
Server server = new Server();
server.server();
}
}.start();
}
}