gpt4 book ai didi

java - 有没有支持java.nio.channels.SocketChannel的ssh客户端?

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:56 24 4
gpt4 key购买 nike

我开发了一个代理应用程序,用户可以通过它远程登录并发送“连接到 xxx”命令来连接到 ssh 服务器。我使用 JSch 作为我的 ssh 客户端:

JSch jsch = new JSch();
Session session = jsch.getSession(username, ip, 22);
Channel channel = session.openChannel("shell");
InputStream inp = channel.getInputStream();
OutputStream oup = channel.getOutputStream();
MyReader myReader = new MyReader(userOutputStream, inp);
new Thread(myReader).start();
MyWriterThread myWriter = new MyWriter(userInputStream, oup);
new Thread(myWriter).start();

然后在这两个新线程中分别处理输入和输出。但由于并发线程过多,代理的性能随着用户量的增加而迅速下降。所以我想使用 java.nio.channels.Selector 和 SocketChannel 来减少线程数量。但是我找不到支持 java.nio.* 的 ssh 客户端(例如:JSch、Apache sshd、sshtools 等)。还有其他支持 java nio 的 ssh 客户端吗?还是有一些方法可以将输入/输出流与 Selector 和 SocketChannel 连接起来?

非常感谢!

最佳答案

截至 2015 年,有一个 JSCH 的 nio 分支:

https://github.com/lucastheisen/jsch-nio

我已经使用过它,它确实显着提高了吞吐量。

关于java - 有没有支持java.nio.channels.SocketChannel的ssh客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12033813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com