我正在使用Java telnet套接字连接到网络元素并获取一些信息。连接工作,我可以读取输出 现在我想优化过程,消除每个命令输出的分页。
使用以下代码建立连接:
Socket soc = new Socket(ip,23);
InputStream in = new DataInputStream(soc.getInputStream());
Writer out = new PrintWriter(soc.getOutputStream(), false);
//...
out.write(command+"\n");
out.flush();
//...
String output = readUntilPrompt(in);
因此,当我使用长输出执行某个命令时,结果似乎符合默认的终端大小(80x25),我可以读取类似的内容:
output line
output line
[...]
output line
output line
Press any key to continue (Q to quit)
这样做,使用Linux的默认终端,分页发生,但如果我调整窗口大小,分页将消失,所有输出都将打印到控制台。
我想要的是以编程方式对Java套接字执行相同的操作。例如,要“告诉”设备我的Java客户端的大小如100x1000。 我已经尝试了Apache's Commons Net way,但它不起作用。
搜索答案时,有人说你可以发送SIGWINCH信号或者写这样的东西,但我不确切知道它是否有效:
out.write("\\e[8;200;200t");
是否有一些代码要发送到服务器以使其正常工作?