2012-08-15 2 views
0

Je développe une application P2P Java où les pairs communiquent entre eux en utilisant une bibliothèque appelée ice4j et il est socket personnalisé appelé PsuedoTCPSocket.Java + SSL à l'aide Socket personnalisée

Je veux maintenant d'ajouter le support de SSL à l'application. PsuedoTCPSocket étend java.net.Socket donc pense qu'il devrait être possible d'utiliser simplement un SSLSocket sur ce socket. Cependant, je ne suis pas en mesure de trouver un moyen de créer des instances SSLSocket en utilisant un Socket sous-jacent personnalisé. Est-ce possible et si oui, comment l'atteindre?

Répondre

1

Si votre PseudoTCPSocket étend java.net.Socket (et ne rompt pas son API), vous devriez être en mesure de mettre à niveau à un SSLSocket en utilisant SSLSocketFactory.createSocket(Socket s, String host, int port, boolean autoClose).

+0

Merci qui ressemble à une excellente option! Cependant, je ne trouve pas la fonction correspondante pour SSLServerSockets. SSLServerSocketFactory ne semble pas avoir de fonction createServerSocket qui vous permet de lui donner un socket personnalisé. Suis-je censé utiliser SSLSocket chez les deux pairs ou ai-je oublié quelque chose? – Yrlec

+1

'SSLSocket' ne sont pas en serveur ou en mode client jusqu'à ce que la poignée de main. Utilisez 'SSLSocket.setUseClientMode (false)' sur le serveur avant la prise de contact si vous voulez un socket serveur. – Bruno

+0

Ok, merci! Je vais essayer ça. – Yrlec