我编写并测试了使用Jsch传输文件的Java代码。从源计算机HERE到目的地计算机THERE的转移工作完美无瑕。使用相同的未修改代码,从HERE到另一台计算机PROBLEM的转移大约有一半的时间。问题是代码将在随机文件上挂起写入或关闭,并且即使在非常长的超时之后也没有抛出异常。 (在极长的超时之后下一次使用通道会导致异常。)使用linux命令“scp”(openssh-clients)可以完美地复制同一组文件,从HERE到THERE,HERE到PROBLEM。 / p>
我认为openssh :: scp设计用于检测和解决的文件传输或接收存在不完善之处。有关如何做的任何建议 继续进行。
详细(S):
用于写/关闭的方法
OutputStream fos = put(String rp3);
fos.close();
是否存在类似于unix alarm / SIGALRM的中断写入/关闭的方法 尝试可以重试吗?
是否有会话setConfig参数指示Jsch更具容错能力?这些记录在哪里?
我应该切换到scp的另一个Java实现吗?