【发布时间】:2014-07-04 18:01:27
【问题描述】:
在我的代码中,我试图保持 Jsch 会话处于活动状态,因为我预计会发生与服务器的许多交互。逻辑是:
- 一个线程将在会话中打开通道以检查文件是否存在
- 另一个线程尝试在同一会话中打开通道以将文件发送到服务器
但是我发现如果 #1 给我一个“找不到文件”,那么 #2 将在此处失败并出现相同的异常:
Header header=new Header();
header=header(buf, header);
int length=header.length;
int type=header.type;
fill(buf, length);
if(type!=SSH_FXP_STATUS && type!=SSH_FXP_HANDLE){
throw new SftpException(SSH_FX_FAILURE, "invalid type="+type);
}
if(type==SSH_FXP_STATUS){
int i=buf.getInt();
>>>> throwStatusError(buf, i);
}
byte[] handle=buf.getString(); // handle
byte[] data=null;
所以问题是,为什么在我将单个字节放入频道之前,新频道会出现与先前频道相同的错误?
【问题讨论】: