서버 소켓을 시작하고 루프백 주소 (127.0.0.1)에서 수신 대기해야합니다. ......왜 안드로이드의 소켓 서버가 항상 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"를 명령하고, 은 (파이썬에서) 다른 프로세스에서 실행중인 클라이언트가 "127.0.0.1"을 통해이 서버에 연결할 수 없게 만들었습니다.
왜 안드로이드가 IPV4 주소를 IPv6 주소로 자동 매핑 했습니까?
는 정확히 어떻게 당신은 당신의 안드로이드에 파이썬을 실행? –
https://code.google.com/p/python-for-android/ – user2612791
[내 서비스가 항상 ipv4 대신 ipv6 localhost에 바인딩되는 이유는 무엇입니까?] (http://stackoverflow.com/questions/8319399)/why-does-my-service-always-bind-to-ipv6-localhost-ipv4 대신) –