服务端:
package udp;
import java.io.*;
import java.net.*;
public class UDPServer {
public static void main(String[] args) throws IOException {
//新建一个DatagramSocket
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);
//关闭DatagramSocket
server.close();
}
}
客户端:
p
package udp;
import java.io.*;
import java.net.*;
import java.util.Arrays;
import test.PublicTool;
public class UDPClient {
public static void main(String[] args) throws IOException {
while(true){
run();
try {
Thread.sleep(2000l);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void run(){
int port = 10000;
DatagramSocket client = null;
try {
client = new DatagramSocket(port);
// 往服务端发送消息
byte[] sendBuf = { 0x7C, 0x13, 0x1F, 0x47, 0x0E, 0x03, 0x06, 0x0F,
0x13, 0x30, 0x00, 0x08, 0x00, 0x00, 0x00, 0x55, (byte) 0xAA,
0x70, 0x7A };
InetAddress addr = InetAddress.getByName("192.168.1.200");
DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length,
addr, port);
client.send(sendPacket);
// 接受服务端传来的消息
byte[] recvBuf = new byte[68];
DatagramPacket receiveBuf = new DatagramPacket(recvBuf, recvBuf.length);
client.receive(receiveBuf);
byte[] all = receiveBuf.getData();
PublicTool.printHexString(all);
System.out.println("服务端传来消息:" + Arrays.toString(all));
} catch (Exception e) {
e.printStackTrace();
} finally{
if(client != null){
client.close();
}
}
}
}