1. 服务端
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UdpServer {
public static void main(String[] args) {
try {
DatagramSocket ds = new DatagramSocket(1000);
byte[] buf = new byte[1024];
while(true){
DatagramPacket dp = new DatagramPacket(buf, buf.length);
ds.receive(dp);
System.out.println("client ----> IP: " + dp.getAddress().getHostAddress() + ", port: " + dp.getPort());
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(dp.getData()));
System.out.println(dis.readInt());
BufferedReader d = new BufferedReader(new InputStreamReader(dis));
System.out.println(new String(d.readLine()));
}
} catch (SocketException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. 客户端
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
public class UdpClient {
public static void main(String[] args) {
try {
DatagramSocket ds = new DatagramSocket();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(200);
dos.write("你好".getBytes());
System.out.println("字节数: " + dos.size());
byte[] buf = baos.toByteArray();
DatagramPacket dp = new DatagramPacket(buf, buf.length, new InetSocketAddress("127.0.0.1", 1000));
ds.send(dp);
ds.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}