UDP监听工具:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
public class UdpReceive {
private boolean isRunning = false;
private DatagramSocket socket;
public UdpReceive(String ip, int port, onReceive onReceive) {
try {
if (isRunning) return;
socket = new DatagramSocket(null);
socket.setReuseAddress(true);
socket.bind(new InetSocketAddress(ip, port));
byte[] buffer = new byte[1024];
DatagramPacket packet;
isRunning = true;
while (isRunning) {
while (isRunning) {
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
onReceive.receive(new String(packet.getData(), 0, packet.getLength()));
}
}
close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void close() {
isRunning = false;
if (socket != null) {
socket.close();
socket = null;
}
}
public interface onReceive {
void receive(String msg);
}
}
UDP发送工具:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpSend {
public static void sendSocket(String ip, int port, String msg) {
try {
DatagramSocket socket = new DatagramSocket();
DatagramPacket packetSend = new DatagramPacket(msg.getBytes(), msg.getBytes().length, InetAddress.getByName(ip), port);
socket.send(packetSend);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}