Java UDP传输示例代码:服务器和客户端实现
Java UDP传输示例代码:服务器和客户端实现
以下是一个简单的 Java UDP 传输的示例代码,包含服务器和客户端实现:
服务器代码:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPServer {
public static void main(String[] args) {
try {
// 创建UDP socket
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
while (true) {
// 创建接收数据的packet
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
// 接收数据
serverSocket.receive(receivePacket);
// 从packet中获取接收到的数据
String receivedMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println('接收到数据: ' + receivedMessage);
// 发送响应数据
String responseMessage = 'Hello, client!';
byte[] sendData = responseMessage.getBytes();
// 获取客户端的IP地址和端口号
String clientIPAddress = receivePacket.getAddress().getHostAddress();
int clientPort = receivePacket.getPort();
// 创建发送数据的packet
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, receivePacket.getAddress(), clientPort);
// 发送数据
serverSocket.send(sendPacket);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
客户端代码:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPClient {
public static void main(String[] args) {
try {
// 创建UDP socket
DatagramSocket clientSocket = new DatagramSocket();
// 设置服务器的IP地址和端口号
InetAddress serverIPAddress = InetAddress.getByName('localhost');
int serverPort = 9876;
// 发送数据
String message = 'Hello, server!';
byte[] sendData = message.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverIPAddress, serverPort);
clientSocket.send(sendPacket);
System.out.println('发送数据: ' + message);
// 接收响应数据
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
// 从packet中获取响应数据
String receivedMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println('接收到响应数据: ' + receivedMessage);
// 关闭socket
clientSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个示例中,一个简单的UDP服务器监听本地的9876端口,接收客户端发送的数据,并回复一个固定的响应消息。UDP客户端向服务器发送一条消息,并接收服务器的响应消息。
代码说明:
- DatagramSocket: 用于创建 UDP 套接字。
- DatagramPacket: 用于封装要发送或接收的数据。
- InetAddress: 用于表示服务器的 IP 地址。
- send() 和 receive() 方法: 用于发送和接收数据。
注意:
- 服务器和客户端需要在同一网络中才能互相通信。
- 端口号需要确保在两端一致。
- 可以根据实际需求修改发送和接收的数据内容。
原文地址: https://www.cveoy.top/t/topic/qjGQ 著作权归作者所有。请勿转载和采集!