2013-02-02 13 views
6

To jest bardziej pytanie nowicjusza, ale nie mogę uzyskać odpowiedzi, której szukam w Google.nierozwiązany adres gniazda

Przeczytałem klasę InetSocketAddress w pakiecie java.net i natknąłem się na tę metodę o nazwie createUnresolved(String host, int port). Ta metoda powoduje utworzenie nierozwiązanej końcówki .

Zasadniczo, co rozumiemy przez nierozwiązane? Często spotykałem się z tym pojęciem w błędach podczas kompilowania programu, ale nigdy go nie zrozumiałem. Czy ktoś może wyjaśnić ogólne znaczenie w java i znaczenie w kontekście tej metody.

Dzięki.

+0

Jest opisany w Javadoc, które zostały również misquoted. – EJP

+1

Tak, a także napisałem, że nie zrozumiałem tego całkowicie. – Rajat

Odpowiedz

0

Znalazłem to in a sun-blog:

Ale postanowił zachować go jako jest jednak używać createUnresolved(), aby utworzyć InetSocketAddress, dzięki czemu wiemy, co zostało wykorzystane do jej wystąpienia. Jeśli użytkownik wpisze na początku adres IP, nie będziemy go obsługiwać. (myślę, że to było nie do odróżnienia wcześniej) Token będzie miał cokolwiek użytkownik stosować IP (lub nazwę) na początku i w przypadku korzystania z nazwy, kluczem do tokena cache nie zmieni nawet ze zmianami addr. Tak więc token delegacji powinien nadal działać.

Zasadniczo jest to na wpół wypalony adres InetSocketAddress - więc nie jest to końcowa iteracja. Jest to etap pośredni ..

iz API:

to może być również parę (nazwa hosta + numer portu), w którym to przypadku podjęta zostanie próba rozwiązać nazwę hosta.

Jeśli rozdzielczość nie to adres uważa się za nierozstrzygnięty ale może nadal być stosowane w pewnych okolicznościach jak podłączenie przez pełnomocnika

Więc nie znaleźliśmy nazwę hosta lub łatwy w obsłudze " www.abc.com "metoda.

Ale jeśli łączymy się za pośrednictwem serwera proxy, to jest OK, ponieważ serwer proxy obsługuje nazwę hosta.

0

miałem sam wyjątek: java.net.UnknownHostException: hosta jest rozwiązane https://www.google.com

Problem polegał na tym, ponieważ dodane HTTPS: // problem został rozwiązany po tym jak usunięty https: //

try { 
    Socket socket = new Socket(); 
    socket.connect(new InetSocketAddress("www.google.com", 443), 100); 
    socket.close(); 
    return true; 
} catch (IOException e) { 
    e.printStackTrace(); 
    return false; 
}