udp接受数据

This commit is contained in:
2025-07-22 17:41:12 +08:00
parent 42308f25e7
commit 57d914dfe7
3 changed files with 42 additions and 2 deletions

View File

@@ -16,6 +16,10 @@ import android.os.Looper;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class Main extends Service {
private Handler handler = new Handler(Looper.getMainLooper());
private Runnable logRunnable = new Runnable() {
@@ -60,6 +64,9 @@ public class Main extends Service {
// 启动定时日志任务
handler.post(logRunnable);
// 启动udp接收
startUdpReceiver();
return START_STICKY;
}
@@ -91,4 +98,37 @@ public class Main extends Service {
Log.e("PineappleService", "启动服务失败: " + e.getMessage());
}
}
private DatagramSocket udpSocket;
private boolean isRunning = false;
private Thread udpReceiveThread;
private void startUdpReceiver() {
Log.i("PineappleService", "启动UDP接收");
isRunning = true;
udpReceiveThread = new Thread(new Runnable() {
@Override
public void run() {
try {
// 初始化 UDP Socket指定端口号
udpSocket = new DatagramSocket(8888); // 你可以根据需要修改端口
byte[] buffer = new byte[1024];
while (isRunning) {
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
udpSocket.receive(packet);
// 收到数据后处理
String receivedData = new String(packet.getData(), 0, packet.getLength());
Log.i("PineappleService", "收到UDP数据: " + receivedData);
// 可以在这里添加处理逻辑比如发送回执、通知Unity等
}
} catch (Exception e) {
Log.e("PineappleService", "UDP接收错误: " + e.getMessage());
}
}
});
udpReceiveThread.start();
}
}