首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

telnet xworks,该如何处理

2012-12-29 
telnet xworks问题如下:用telnet登陆成功后,如果执行多条命令,比如,先执行i命令,察看任务状态,再执行tt xx

telnet xworks
问题如下:
用telnet登陆成功后,如果执行多条命令,比如,先执行i命令,察看任务状态,再执行tt xxxx命令
查看函数调用过程。要使这些命令依次执行。
简单来说就是如何用telnet一次执行多条命令。请大家帮忙,谢谢!
我是在后台用java来实现的。
过程如下:
1,
//首先利用Socket连接(过程有些省略)
Socket mSocket = new Socket();
mSocket.connect(xx,xx);
mServerOutput = mSocket.getOutputStream();
mServerInput = new BufferedInputStream(mSocket.getInputStream());
2,
//成功连接后,输入用户名和密码进行登陆
send( new ByteArrayInputStream( ( loginID + "\r\n").getBytes() ), mServerOutput );
send( new ByteArrayInputStream( ( loginPassword + "\r\n" ).getBytes() ), mServerOutput );  
//send方法:将字符串写进输出流
private void send(InputStream in, OutputStream out) throws IOException
{
  byte[] buff = new byte[1024];
  try {
  int n = in.read(buff);
  out.write(buff, 0, n);
  }catch(IOException e){
  throw e;
  }
}
3,现在需要做的事情:利用telnet向连接上的机器发送命令
首先,需要通过“i”命令察看任务状态:
然后通过”tt”来追溯函数调用过程:
send( new ByteArrayInputStream( ( "i" + "\r\n" ).getBytes() ), mServerOutput);
send( new ByteArrayInputStream( ( "tt "RecTaskF"" + "\r\n" ).getBytes() ), mServerOutput);
//send( new ByteArrayInputStream( ( "tt "RecTaskF_RcgTask2"" + "\r\n" ).getBytes() ), mServerOutput);
//send( new ByteArrayInputStream( ( "tt "RecTaskF_RcgTask1"" + "\r\n" K ).getBytes() ), mServerOutput);
//send( new ByteArrayInputStream( ( "tt "RecTaskR"" + "\r\n" ).getBytes() ), mServerOutput);
问题:在这里我测试过如果只发送i和一个tt命令,能正常发送过去。
如果再连续发送几个tt命令,则好像不能正常发送过去。
也就是将上面注释的代码不注释的话就有问题。
也许我的思路有问题,但是目的只有一个:成功利用telnet连接后,相继发送i命令和n个tt命令
请大家帮忙看看,有好的思路或者建议请不吝赐教,十分感谢。

[解决办法]
send之间加点延时试试尼。
[解决办法]
shell命令可以通过文本文件直接导入进来批量执行的。
记得tornado trainning workshop中好像就有例子的,或者是T2_lab实验教材,记不太清了

热点排行