# SSLSocketFactory.createSocket(String hostname, int port),wo?



## stev.glasow (17. Jan 2005)

Huhu,
hier http://www.galileocomputing.de/open...#Rxxjavainsel_160010256SLLVerbindungenmitJSSE
steht, dass es eine Methode SSLSocketFactory.createSocket(String hostname, int port) gibt, aber wenn ich in die api doku schaue sehe ich dort nur folgende Methode: createSocket(Socket s, String host, int port, boolean autoClose) 
Ist das jetzt ein Fehler im Tutorial oder wurde das im nachhinein noch geändert?

Und sorry für den blöden Titel.


----------



## Sky (17. Jan 2005)

'SSLSocketFactory' ist abgeleitet von der Klasse 'SocketFactory', welche die angesprochene Methode implementiert. Hoffe, das es jetzt soweit klar ist...


----------



## stev.glasow (17. Jan 2005)

ops  :roll:


----------



## stev.glasow (17. Jan 2005)

Und wieso kann ich hier
SSLSocket socket = (SSLSocket)sslFact.createSocket(hostName, port);
das Socket Objeckt zu  SSLSocket casten? 
createSocket(String, int) wird doch nicht von SSLSocketFactory überschrieben


----------



## Sky (17. Jan 2005)

Also, nach dem Aufruf von 'getDefault' bekommst Du eine 'SSLSocketFactory' zurück. Wenn Du dann mal in den Debugger guckst, dann wirst Du sehen, dass diese Zeile dort steht: "sslFact: javax.net.ssl.SSLSocketFactory = {com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl@188}" (oder so ähnlich). 
Die Factory 'SSLSocketFactoryImpl' scheint mir eine Ableitung von 'SSLSocketFactory' zu sein. Ich habe mir aber nicht mehr die Mühe gemacht dort weiter nach der entsprechenden create-Methode zu suchen.

Ich denke mal, dass es intern geregelt ist, ob Du nun einen Socket oder einen SSL-Socket zurück geliefert bekommst. 
Meine Vermutung rührt u.a. daher, dass in der API zu 'SSLSocketFactory' die Methode 'createSocket' auch _nur_ einen 'Socket' und nicht einen 'SSLSocket' liefert.


----------



## stev.glasow (17. Jan 2005)

Alles klar, thx.


----------

