2013-02-02 11 views
6

Dies ist eher eine Frage für Anfänger, aber ich bin nicht in der Lage, die Art von Antwort, die ich bei Google suche.nicht aufgelöste Socket-Adresse

Ich las die Klasse InetSocketAddress in java.net Paket und ich stieß auf diese Methode namens createUnresolved(String host, int port). Diese Methode erstellt einen ungelösten Socket.

Im Grunde, was meinen wir mit ungelöst? Ich bin bei der Erstellung eines Programms oft auf Fehler gestoßen, habe sie aber nie vollständig verstanden. Kann jemand bitte erklären Sie die allgemeine Bedeutung in Java und Bedeutung mit Kontext zu der besagten Methode.

Danke.

+0

Es ist in der Javadoc beschrieben, die Sie auch falsch zitiert haben. – EJP

+1

Ja, und ich schrieb auch, dass ich es nicht vollständig verstanden habe. – Rajat

Antwort

0

fand ich dieses in a sun-blog:

aber beschlossen, es zu halten, wie ist aber createUnresolved() verwenden, um eine InetSocketAddress, zu schaffen, damit wir wissen, was es zu instanziiert verwendet wurde. Wenn der Benutzer zu Beginn mit einer IP-Adresse schlug, werden wir nicht damit umgehen. (Ich denke, es war vorher nicht unterscheidbar) Das Token wird den Benutzer verwendet haben (IP oder Name) am Anfang und im Fall der Verwendung von Name, der Schlüssel zum Token-Cache wird nicht geändert, auch mit addr Änderungen. Daher sollte das Delegationstoken weiterhin funktionieren.

Im Grunde genommen handelt es sich um eine unvollständige InetSocketAddress - es ist also nicht die letzte Iteration. Es ist ein Zwischenschritt ..

und API:

Es kann auch ein Paar (Hostname + Port-Nummer) sein, wobei in diesem Fall ein Versuch wird die Hostnamen zu regeln.

Wenn Auflösung fehlschlägt, dann die Adresse gesagt ungelöst sein, sondern kann noch auf bestimmten Umständen verwendet werden, wie durch ein Proxy-Verbindungs ​​

So haben wir die Hostnamen nicht gefunden, oder die benutzerfreundliche " www.abc.com "Methode.

Aber wenn wir über einen Proxy verbinden, ist es in Ordnung, weil der Proxy-Server den Hostnamen behandelt.

0

hatte ich die gleiche Ausnahme: java.net.UnknownHostException: Host ist ungelöst: https://www.google.com

Das Problem war, weil ich das Protokoll https hinzugefügt: //, ist das Problem behoben, nachdem ich https entfernt: //

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; 
} 
Verwandte Themen