我啓動一個服務器套接字,並希望它監聽環回地址(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)的 –