我正在尝试连接到发送UDP数据包的数据链路。这些数据包不是“广播的”。 (我知道有两种方法可以发送UDP支持,广播使得任何机器都可以在网络上接收,或者发送到特定的IP ......我的理解仅限于此,但我知道它们已被发送到特定的IP)。
我无法接收我正在测试的Android应用程序上的数据包(Galaxy S3 ...已在Manifest中启用了Internet权限)。我绑定到主机(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);
}