gpt4 book ai didi

java - 我可以使用一个 Jsch 对象打开多个 channel 吗?

转载 作者:太空狗 更新时间:2023-10-29 12:31:56 25 4
gpt4 key购买 nike

我有一个要求,我需要打开一个 SftpChannel 用于文件传输和一个 exec channel 以在远程系统上执行命令。那么,我可以打开这些 channel 使用单个 jsch 对象和单个 session 对象。如果可以,请给我一个小代码片段,或者建议我是否有其他方法可以做到这一点?

最佳答案

可以在单个 session 中打开多个 channel 。

  Channel chExec = session.openChannel("exec");
Channel chSFTP = session.openChannel("sftp");

chExec.setInputStream(System.in);
chExec.setOutputStream(System.out);
chSFTP.setInputStream(System.in);
chSFTP.setOutputStream(System.out);

chExec.connect();
chSFTP.connect();

在上面的代码片段中,您会将所有系统输入发送到两个 channel ,您可能不想这样做,因此您必须为一个或两个 channel 创建一个唯一的流。

此外,您可以打开一个 channel ,使用它,关闭它,然后打开一个新 channel ,所有这些都在同一个 session 中。

Jsch 不会自动关闭您的 session 。您必须明确关闭它们。参见 this answer有关关闭 channel 和 session 的说明。

关于java - 我可以使用一个 Jsch 对象打开多个 channel 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24138509/

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