簡體   English   中英

在Android設備上發送UDP后無法接收UDP響應

[英]Can't receive UDP response after UDP sending on Android device

我有一個盒子,在收到UDP數據包后發送UDP響應。 我終於找到了如何實現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");

我不明白問題出在哪里。 任何想法請!

您實際上從未閱讀過傳入消息。 您將需要類似:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM