问题描述
这可能是一个逻辑上的问题,但这是可行的。
我正在为Spring项目使用一个缓冲读取器,该读取器将连续接收telnet连接的输出-
BufferedReader inBuff = new BufferedReader(new InputStreamReader(telnet.getClient().getInputStream(),"UTF-8"));
while (((line = inBuff.readLine()) != null) || ((line = inBuff.readLine()) != "\r\n"))
{
do something with the lines
}
但是我要定期将命令发送到同一telnet连接,并从另一个类接收输出。
telnetSession.send(writeCmd,true) ;
Thread.sleep(ProbeConstants.readTimeWait*1000);
logger.info(data.getDevice() + " send Cmd " + writeCmd ) ;
resultTmp = telnetSession.readResponse() ;
但是问题是,不是从上述resultTmp
变量中获取命令的结果,而是从缓冲的读取器中获取命令的结果。我可以从日志中看到它。
我尝试使用while循环将带有标志的缓冲包装的读取器包装起来,该标志的值将设置为true,然后在发送命令的处理程序中将其设置为false,但是它似乎不起作用。我仍然得到输出以及缓冲的读取器输出。
谁能告诉我如何解决此问题,并在我发送命令的持续时间内停止缓冲的读取器,并在其他处理程序中返回输出。 ?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)