Android UDP 服务器崩溃

Crash in Android UDP server

更新: 我在这个 Android UDP 服务器示例中崩溃了:

    //------------------------------------------------------------
public class AsyncReceiveUdp2 extends AsyncTask<String, Void, Boolean> {
    @Override
    protected Boolean doInBackground(String... f_url) {
        int udp=111;
        String txt="";
        byte[] packet = new byte[2000];
        DatagramPacket dp = new DatagramPacket(packet, packet.length);
        DatagramSocket ds = null;
        try {
            ds = new DatagramSocket(udp);
            ds.setSoTimeout(10000);
            printLog("Ready");
            ds.receive(dp);
            printLog("Received");
            ...
        } catch (SocketException e) {
            printLog("Error1");
            e.printStackTrace();
        } catch (IOException e) {
            printLog("Error2");
            e.printStackTrace();
        } finally {
            if (ds != null) {
                ds.close();
            }
        }

        return null;
    }
}

我收到 "error2" 消息。 原因是"java.net.SocketTimeoutException"。 它发生在 10 秒后。 但是我从另一台计算机发送了 UDP 数据包。 嗯,我不明白它是如何工作的...... 请有任何想法!


抱歉多了一行,网站说我的 post 主要是代码 抱歉多了一行,该网站说我的 post 主要是代码 抱歉多了一行,该网站说我的 post 主要是代码

您不能在 UI 线程上 运行 网络线程,Android 策略禁止这样做。创建一个新线程或使用 AsyncTask