首页 文章

在Android设备上发送UDP后无法接收UDP响应

提问于
浏览
0

我有一个盒子,收到UDP包后发送UDP响应 . 我终于找到example如何实现UDP服务器 . 它可以接收UDP数据包 .

我的应用中有一个按钮 . 如果我点击它,我发送UDP数据包到框,但我没有得到共鸣 . 我看到该框从我的Android设备接收此数据包并发送响应 . 我的UDP客户端如下:

public class AsyncSendUdp extends AsyncTask<String, Void, Boolean> {
    InetAddress inet_addr;
    DatagramSocket socket;

    @Override
    protected Boolean doInBackground(String... arg0) {
        byte[] ip_bytes = new byte[]{(byte) 192, (byte) 168, (byte) 0, (byte) 11};
        try {
            inet_addr = InetAddress.getByAddress(ip_bytes);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        char[] bufc = {1, 2, 3, 4};
        byte[] buffer = new byte[4];
        for (int i = 0; i < 4; i++) {
            buffer[i] = (byte) bufc[i];
        }
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length, inet_addr, 0xbac0);
        try {
            socket = new DatagramSocket();
            socket.send(packet);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return true;
    }
}

我发送如下:

new AsyncSendUdp().execute("mmm");

我不明白问题出在哪里 . 有任何想法!

1 回答

  • 0

    你永远不会真正阅读传入的消息 . 你会想要这样的东西:

    byte[] inBuffer = new byte[N];
    DatagramPacket inPacket = new DatagramPacket(inBuffer, inBuffer.length);
    while (!exitCondition) {
        socket.receive(inPacket);
        // do something with your received packet
    }
    

相关问题