サーバー ソケットを開始し、ループバック アドレス (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 アドレスに自動的にマップしたのはなぜですか?