1

UDP パケットを送信するデータリンクに接続しようとしています。これらのパケットは「ブロードキャスト」されません。(UDP バケットを送信するには、ネットワーク上で任意のマシンが受信できるようにブロードキャストする方法と、特定の IP に送信する方法の 2 つがあることを理解しています...私の理解はこれに限られていますが、それらが送信されることは知っています特定の 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