我正在尝试连接到发送 UDP 数据包的数据链路。这些数据包没有被“广播”。(我知道有两种方法可以发送 UDP 备份,广播以便任何机器可以在网络上接收,或者发送到特定的 IP……我的理解仅限于此,但我知道它们是发送的到特定的 IP)。
我无法在我正在测试的 Android 应用程序上接收数据包(Galaxy S3 ......清单中已启用互联网权限)。我正在绑定到主机 (IP) 及其关联的端口。在 WireShark 中可以看到数据包流量。
这是我的代码。我遗漏了什么明显的东西?
try {
Log.d("UDP", "1");
DatagramSocket serverSocket = new DatagramSocket();
Log.d("UDP", "2");
InetAddress address = InetAddress.getByName(UDP_IP);
Log.d("UDP", "2a");
serverSocket.connect(address, UDP_SERVER_PORT);
Log.d("UDP", "2b");
serverSocket.setSoTimeout(5000); //5 sec wait for the client to connect
Log.d("UDP", "3");
byte[] data = new byte[1024];
Log.d("UDP", "4");
DatagramPacket packet = new DatagramPacket(data, data.length);
Log.d("UDP", "5");
Log.d("UDP", "S: Receiving...");
serverSocket.receive(packet);
//lock.release();
retVar = 1;
Log.d(" Received Packet", "Good");
}
catch (Exception e) {
Log.e("UDP", "S: Error", e);
}