我正在构建一个实时 GPS 跟踪系统,它将接收从几个使用 UDP 的 Arduino 设备发送的 GPS 数据。到目前为止我有这个代码:
PreparedStatement stmt ...
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
while(true){
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String received = new String( receivePacket.getData());
System.out.println("RECEIVED: " + received);
stmt.set...
stmt.execute();
}
1 - 任何有更多知识的人都可以告诉我是否有更好的方法来做到这一点?我真的不知道 JVM 是如何处理这个问题的,但我不喜欢那个无限循环。
2 - 假设我有 50 个 Arduinos 发送数据。我需要使用线程或类似的东西吗?
3 - 最好为每个“连接”使用一个线程(UDP 是无连接的),就像下面的答案一样,或者使用像 Apache Mina 或 Netty 这样的框架/库?