我无法收到DatagramPacket
s。但是,使用wireshark,我可以验证数据包是否到达。我在这个站点上看到了类似的问题以及可能的解决方案,但它们对我没有多大帮助(我已经尝试过停用防火墙等)。我的代码很简单:
// Create socket
DatagramSocket socket = new DatagramSocket(5554);
socket.connect(InetAddress.getByName("192.168.1.1"), 5554);
try {
while(!stop) {
keepAwake(); // This sends some bytes using socket.send(...), works perfectly fine
DatagramPacket packet = new DatagramPacket(new byte[2048], 2048);
socket.receive(packet); // Does not work :(
System.out.println("[DEBUG] Packet received!"); // Never happens
// Parse packet
}
} catch (Exception e) {
e.printStackTrace(); // Also no exceptions are thrown
}
这里可能是什么问题?顺便说一句,我的操作系统是 Ubuntu 12.10,数据包是从用 C 语言编写的服务器发送的,我没有其源代码(DatagramSocket 是否只接收从 Java DatagramSocket 发送的 DatagramPackets?)。
我真的很感激任何建议!