1

アプリにサーバーソケットを実装しました。私のアプリケーションには 2 つのアクティビティがあります。最初のアクティビティは、ユーザーにいくつかの情報を表示するためだけに使用され、2 つ目のアクティビティを開始するために使用されます。2 番目のアクティビティには、アプリの機能とサーバー ソケットが含まれます。現在、次の手順を使用して、トピックのタイトルに常にエラーが表示されます。これらの手順を実行すると、常にエラーが生成されます。1.アプリケーションを起動します 2.2 番目のアクティビティを開始します 3.最初のアクティビティに戻ります 4.以下に挿入したコードの 2 番目のアクティビティ (アプリは最後のキャッチ例外に入る) に戻ります。

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