2012-08-15 57 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