服务端代码
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String[] args) throws IOException {
DatagramSocket server = new DatagramSocket(5050);//指定服务器端口号
//接收
byte[] recvBuf = new byte[100];
DatagramPacket recvPacket = new DatagramPacket(recvBuf, recvBuf.length);//接收来自客户端的数据
server.receive(recvPacket);
String recvStr = new String(recvPacket.getData(), 0,
recvPacket.getLength());
System.out.println("服务端收到:" + recvStr);
//发送
int port = recvPacket.getPort();
InetAddress addr = recvPacket.getAddress();
String sendStr = "Hello ! I'm Server";
byte[] sendBuf;
sendBuf = sendStr.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length,
addr, port);
server.send(sendPacket);
server.close();
}
}
客户端代码
import java.io.*;
import java.net.*;
class UDPClient {
public static void main(String[] args) throws IOException {
DatagramSocket client = new DatagramSocket();
//发送
String sendStr = "Hello! I'm Client";
byte[] sendBuf;
sendBuf = sendStr.getBytes();
InetAddress addr = InetAddress.getByName("127.0.0.1");
int port = 5050;
DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length,
addr, port);
client.send(sendPacket);
//接收
byte[] recvBuf = new byte[100];
DatagramPacket recvPacket = new DatagramPacket(recvBuf, recvBuf.length);
client.receive(recvPacket);
String recvStr = new String(recvPacket.getData(), 0,
recvPacket.getLength());
System.out.println("客户端收到:" + recvStr);
client.close();
}
}
测试结果