如何在已打开的SSL Session java中打开ssl socket

时间:2017-05-23 19:56:04

标签: java sockets ssl

我打开了HttpsURLConnection。 我怎样才能连接"我的ssl socket连接到这个连接,意味着不要再做一次ssl握手,也不要改变我的密码。

URL url = new URL ("https://example.com:8080");
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.connect();

SSLSocketFactory ssf = connection.getSSLSocketFactory();
SSLSocket socket = (SSLSocket) ssf.createSocket("example.com", 8080);

//这里我想发送一个带有套接字的消息,它将与https连接在同一个ssl会话中。

BufferedWriter out = new BufferedWriter(
                        new OutputStreamWriter(s.getOutputStream()));
out.write("Hello");
out.flush();
out.close();

在Java中真的要做这样的事吗?

2 个答案:

答案 0 :(得分:1)

默认情况下会发生这种情况,只要会话仍然有效,并且只要你没有弄乱SSLContexts.

答案 1 :(得分:-1)

AFAIK,您无法将新套接字附加到现有SSL会话。如果要在原始SSL会话上发送/读取数据,请使用URLConnection对象创建的原始套接字连接。您可以使用URLConnection.getInputStream()URLConnection.getOutputStream()方法获取输入/输出流:

URL url = new URL ("https://example.com:8080");
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.connect();

...

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
out.write("Hello");
out.flush();
out.close();