1

我正在尝试连接到发送 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);
    }
4

0 回答 0