2012-08-15 22 views
0

我正在开发一个基于Java的P2P应用程序,其中对等方正在使用名为ice4j的库进行通信,并且它是自定义套接字,名为PsuedoTCPSocket。使用自定义套接字的Java + SSL

我现在想要为应用程序添加SSL支持。 PsuedoTCPSocket扩展java.net.Socket,所以认为应该可以在该套接字上使用SSLSocket。但是我无法找到任何方式使用自定义底层套接字来创建SSLSocket实例。这是可能的,如果是这样,我该如何实现它?

回答

1

如果您PseudoTCPSocket扩展java.net.Socket(而不会破坏其API),你应该能够把它升级SSLSocket使用SSLSocketFactory.createSocket(Socket s, String host, int port, boolean autoClose)来。

+0

谢谢,看起来像一个很棒的选择!但是,我找不到SSLServerSockets的相应功能。 SSLServerSocketFactory似乎没有任何createServerSocket函数可让您为其提供自定义套接字。我是否应该在同伴身上使用SSLSocket,或者我错过了什么? – Yrlec 2012-08-15 12:30:39

+1

在握手之前,'SSLSocket'不处于服务器或客户端模式。如果您需要服务器套接字,请在握手之前在服务器上使用'SSLSocket.setUseClientMode(false)'。 – Bruno 2012-08-15 12:42:52

+0

好的,谢谢!我会尝试。 – Yrlec 2012-08-15 12:43:54