我想在Java中实现SSL代理.我基本上打开两个套接字browser-proxy,proxy-server然后运行两个线程来写入proxy-server它们读取的内容browser-proxy,反之亦然.每个线程看起来像这样:
while (true) {
nr = in.read(buffer);
if (nr == -1) System.out.println(sockin.toString()+" EOF "+nr);
if (nr == -1) break;
out.write(buffer, 0, nr);
}
sockin.shutdownInput();
sockout.shutdownOutput(); // now the second thread will receive -1 on read
Run Code Online (Sandbox Code Playgroud)
每个线程只关闭输入套接字,以便最终关闭两个套接字.
但是,如果我想使用它,我该怎么办SSLSocket?似乎shutdownOutput/Input那里不支持这些方法.这是我得到的例外.
Exception in thread "Thread-35" java.lang.UnsupportedOperationException: \
The method shutdownInput() is not supported in SSLSocket
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.shutdownInput(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我想出的是:
try {
while (true) {
nr = in.read(buffer);
if (nr == -1) System.out.println(sockin.toString()+" …Run Code Online (Sandbox Code Playgroud)