我正在尝试编写一个 Java 程序,该程序将与启用 TLS 的服务器建立 Telnet 会话,该服务器只能通过端口转发代理访问。
过去我已经成功地使用 TelnetClient 与非 TLS 服务器和 TLS 服务器建立 telnet 会话,但我从未使用过代理。
我已经为此苦苦挣扎了一段时间,所以是时候请教专家了。
这是一个简单的代码示例,说明了我遇到的问题。在我向读者发表讲话后,我没有得到任何返回,然后读者阻止:
'''公共类 SimpleTest {
public static PrintStream psout;
static void write(String value) {
try {
psout.println(value);
psout.flush();
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
TelnetClient telnet;
TelnetReader tr;
String host="192.168.82.72";
int port=992;
try {
// 1. Create the TelnetClient Object
telnet = new TelnetClient();
// 2. Set up our own SocketFactory (For SSL)
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
telnet.setSocketFactory(sslsocketfactory);
// 3. Set the proxy
System.setProperty("socksProxyHost","127.0.0.1");
System.setProperty("socksProxyPort","6600");
Proxy socksProxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("127.0.0.1", 6600));
telnet.setProxy(socksProxy);
// 4. Connect
telnet.connect(host, port);
Thread.sleep(1000);
// 5. Start the reader
tr = new TelnetReader(telnet.getInputStream());
Thread reader = new Thread (tr);
reader.start();
Thread.sleep(1000);
// 6. Address the output stream
String r;
psout = new PrintStream(telnet.getOutputStream());
Thread.sleep(1000);
r = tr.get(); // <- r is null!!
} catch (Exception e) {
e.printStackTrace();
}
}
} '''
我究竟做错了什么?
蒂亚约翰