1

我在我的应用程序上实现了一个服务器套接字。我的应用程序有两个活动,第一个仅用于向用户显示一些信息并启动第二个。第二个活动包含应用程序和服务器套接字的功能。现在,我总是使用这些步骤在主题标题中收到错误:如果我执行以下步骤,它总是会生成:1.启动应用程序 2.启动第二个活动 3.回到第一个活动 4.再次转到我在下面插入的代码的第二个活动(应用程序进入最后一个捕获异常)。

public class ServerThread implements Runnable {
    public void run() {
        try{
            ServerSocket parent = new ServerSocket();
            parent.setReuseAddress(true);
            parent.bind(new InetSocketAddress(SERVERPORT));
            if ( SERVERIP != null){
                handler.post(new Runnable(){
                    @Override
                    public void run(){
                        serverStatus.setText("Listening on IP: " + ip_address_conversion + ":" + SERVERPORT);
                    }
                });

                while (true){
                    Socket client = parent.accept();
                        //do something
                    }
            } else{
                handler.post(new Runnable(){
                    @Override
                    public void run(){
                        serverStatus.setText("Couldn't detect internet connection.");
                    }
                });
            }
        } catch (Exception e) {
            handler.post(new Runnable(){
                @Override
                public void run(){
                    serverStatus.setText("Error undefined");
                }
            });
            e.printStackTrace();
        }
    }
}

所以我的问题是如何避免这个错误或修复它。我已经检查了这个答案,但在我的情况下没有帮助。- java.net.BindException:绑定失败:EADDRINUSE - Android ServerSocket EADDRINUSE - Android DatagramSocket 错误消息:EADDRINUSE(地址已在使用中)

谢谢

4

0 回答 0