gpt4 book ai didi

java - 提高telnet连接读取输入速度

转载 作者:行者123 更新时间:2023-11-30 04:19:14 26 4
gpt4 key购买 nike

我编写了一种“期望”类型的实现,用于向路由器发送命令。

我观察到的是,连接输入的处理速度要慢得多。

我的代码如下,

public static String expect(String expectString) {
try {
int c = 0;
while ((c = br.read()) != -1) {
expectBuffer.append((char) c);
System.out.print((char) c);
if (expectBuffer.toString().contains(expectString)) {
break;
}
}
String expBuff = expectBuffer.toString();
expectBuffer.setLength(0);
// System.out.println(expBuff);
return expBuff;
} catch (Exception e) {
return "";
}

}

public static void send(String cmd) {
pw.print(cmd + "\r");
pw.flush();
}

main 中,我按如下方式调用它们,

            socket = new Socket();
socket.connect(new InetSocketAddress(server, 23), 10000);//Will wait for 10 seconds
socket.setKeepAlive(true);
socket.setSoTimeout(10000);
expectBuffer = new StringBuilder();
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(), true);
expect("Login");
send("dinesh");
expect("Password");
send("stack");
expect(server + "#");
send("some command here");
expect(server + "#");

处理输入并在控制台中打印相同的内容需要很长时间。

任何人都可以提供有关改进我的代码的建议吗?

提前致谢。

最佳答案

使用InputStream的int read(byte[] b)函数,而不是int read()。

这将大大加快读取速度,因为信息到达的包大于 1。

关于java - 提高telnet连接读取输入速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com