无法从特定IP接收UDP数据包

时间:2013-02-13 18:58:44

标签: android

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

0 个答案:

没有答案