【问题标题】:Receive UDP packets in Async Task BackGround Process在异步任务后台进程中接收 UDP 数据包
【发布时间】:2013-07-03 12:16:07
【问题描述】:
protected String doInBackground(String... f_url) {
        int count;

        byte [] ip_bytes = new byte[] {(byte)192,(byte)168,(byte)1,(byte)100};
        try {
            InetAddress address = InetAddress.getByAddress(ip_bytes );

          byte buffer[] = new byte[2000];

                    DatagramPacket p = new DatagramPacket(buffer, buffer.length, address, port);
                    try {
                    DatagramSocket ds = new DatagramSocket(port);
                    Log.d("..........","Perfect Binding .... Waiting for Data");
                    ds.receive(p);
                    publishProgress(""+p);
                    Thread.sleep(100);

                    Log.d("","Received :) ");
                    } catch(Exception e)
                    {
                        e.printStackTrace();
                    }


        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        return null;
    }

.................................................. 这是在 Async Backgroung Process 中接收 UDP 数据包的代码,但没有收到单个数据包......我的代码有什么问题?我怎样才能克服这个问题?

【问题讨论】:

    标签: java android multithreading android-asynctask udp


    【解决方案1】:

    好像是接收,不需要在DatagramPacket中指定ip和端口。

    DatagramPacket p = new DatagramPacket(buffer, buffer.length);
    

    【讨论】:

    • 是的...谢谢,现在工作正常 :) 我的案例问题是我忘记将手机连接到 wi-fi,所以没有分配 IP 地址。所以它不起作用。感谢您的帮助。
    • 您能解释一下如何接收多条消息吗?需要对代码进行哪些修改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多