Android~ java.net.BindException: bind failed: EADDRINUSE (Address already in use)

最近项目使用UDP通信,遇到了绑定异常的情况:

java.net.BindException: bind failed: EADDRINUSE (Address already in use)

之前做java网络编程的时候也遇到过,当时也没太细究,百度查了一下,果然还有其他方法避免重复绑定使用一个socket地址。
如下解决:

try {
    /*
    if (socket != null) { socket.close(); socket = null; }
    socket = new DatagramSocket(8000);
    */
    if(socket == null){
        socket = new DatagramSocket(null);
        socket.setReuseAddress(true);
        socket.bind(new InetSocketAddress(8000));
    }
}catch (SocketException se){
    se.printStackTrace();
}

猜你喜欢

转载自blog.csdn.net/Bluechalk/article/details/82663213