我使用org.apache.commons.net.telnet.TelnetClient打破無限循環通過讀「登錄:」等待控制檯輸入java的
,我提供的登錄信息在Java中的遠程登錄代碼telnet服務器通過下面的代碼,
in = telnet.getInputStream();
char lastChar = pattern.charAt(pattern.length()-1);
StringBuffer sb = new StringBuffer();
char ch = (char) in.read();
while (true) {
System.out.print(ch);
sb.append(ch);
if (ch == lastChar) {
if (sb.toString().endsWith(pattern)) {
return sb.toString();
}
}
ch = (char) in.read();
i++;
// System.out.print(i);
}
但是,當我給它提示例如:「用戶名:」一個無效telnet服務器,它導致無限循環等待「登錄:」在「in.read();」
作爲它在in.read()中的等待,我不能在while(_flag)中使用任何標誌或其他標誌。 任何人都可以爲我提供避免無限循環的解決方案,當它的應用程序收到無效登錄。
請正確格式化您的代碼。 – 2012-08-12 15:16:31
請不要在使用StringBuilder時使用StringBuffer。 – 2012-08-13 08:03:35