わかりましたので、私はそれが非常に簡単であるように思われることをしています。私は基本的に ServerSocket 接続を開こうとしていて、クライアントが接続するのを待ちます。
これが私のコードです。
ServerSocket serverSocket = new ServerSocket(6543);
Socket clientSocket = serverSocket.accept();
私のコードが serverSocket.accept(); にヒットするたびに、次の例外をスローしています。
bind failed: EADDRINUSE (Address already in use)
したがって、明らかに私の次のステップは、別のポートが機能するかどうかを確認することでしたが、機能しませんでした。次に、デバイスを再起動してアプリを実行しようとしましたが、同じ例外が発生しました。アプリに INTERNET 権限を付与し、デバイスをルート化しました。
表示されるネットワーク インターフェイスは次のとおりです。
lo: ::1%1
lo: 127.0.0.1
eth0: //IPV6 address
eth0: 192.168.1.127
編集1
これは、デバッグ時に取得した serverSocket オブジェクト情報です。
ServerSocket[addr=192.168.1.121/192.168.1.121,port=0,localport=1234]
編集2
ServerSocket に次の利用可能なコンストラクターがあります
new ServerSocket(int port)
new ServerSocket(int port, int backlog)
new ServerSocket(int port, int backlog, InetAddress localAddress)
3番目のコンストラクターと同じ例外を使用してみました。
new ServerSocket(4567, 0, InetAddress.getLocalHost());