我启动一个服务器套接字,并希望它监听环回地址(127.0.0.1)。该代码如下: ......为什么android上的套接字服务器总是监听IPv6?
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() + ".");
}
}
......
}
但是我发现,这个套接字开始监听IPv6地址“:FFFF:127.0.0.1”使用命令“netstat的”,并且它 导致在另一个进程(使用Python)中运行的客户端无法通过“127.0.0.1”连接到此服务器。
为什么android会自动将IPV4地址映射到IPv6地址?
到底是如何,你在Android上运行的Python? –
https://code.google.com/p/python-for-android/ – user2612791
[为什么我的服务总是绑定到ipv6 localhost而不是ipv4?](http://stackoverflow.com/questions/8319399 /为什么 - 不,我的服务,总是绑定到IPv6的本地主机,INSTEAD-OF-IPv4)的 –