android DatagramSocket创建阻塞抛出异常

真素气鼠,在一个demo里跑成功的代码,拷贝到另一个项目就不行了。原因是代码执行到创建DatagramSocket对象时就阻塞了。搞了半天,改来改去,最后发现是权限忘记添加了。

在AndroidManifest.xml中添加:




    

    

 还有个注意点是,网络操作要放在子线程中,否则也会引起阻塞。

        new Thread(new Runnable() {
            public void run() {
                try {
                    DatagramSocket socket = new DatagramSocket();
                    byte[] buf = newMessage.getBytes();
                    DatagramPacket packet = new DatagramPacket(buf, buf.length, InetAddress.getLocalHost(), 58899);
                    socket.send(packet);
                } catch (IOException e1) {
                    //TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }).start();

 

你可能感兴趣的:(android DatagramSocket创建阻塞抛出异常)