アプリにサーバーソケットを実装しました。私のアプリケーションには 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 (アドレスは既に使用されています)
ありがとう