0

サーバー ソケットを開始し、ループバック アドレス (127.0.0.1) でリッスンすることを望みます。コードは次のとおりです。

Inet4Address address = (Inet4Address) Inet4Address.getByName("localhost");
TServerSocket server = new TServerSocket(new InetSocketAddress(address ,1234));
.........

public class TServerSocket{
......
  public TServerSocket(InetSocketAddress bindAddr, int clientTimeout) throws                TTransportException {
clientTimeout_ = clientTimeout;
try {
  serverSocket_ = new ServerSocket();
  serverSocket_.setReuseAddress(true);
  serverSocket_.bind(bindAddr);
} catch (IOException ioe) {
   serverSocket_ = null;
  throw new TTransportException("Could not create ServerSocket on address " +        bindAddr.toString() + ".");
 }
  }
   ......
}

しかし、このソケットがコマンド「netstat」を使用して IPv6 アドレス「:ffff:127.0.0.1」でリッスンを開始し、別のプロセス (Python) で実行されているクライアントがこのサーバーに接続できないことがわかりました。 「127.0.0.1」。

Android が IPv4 アドレスを IPv6 アドレスに自動的にマップしたのはなぜですか?

4

2 に答える 2