org.apache.commons.net.telnet.TelnetClientを使用してJavaでTelnetコードを使用しています
そして、私は以下のコードを介してtelnetサーバーから「login:」を読んでログイン情報を提供しています。
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);
}
しかし、「username:」などのプロンプトを表示する無効なtelnetサーバーを指定すると、「in.read();」で「login:」を待機する無限ループが発生します。
in.read()で待機しているため、while(_flag)でもフラグなどを使用できません。アプリケーションが無効なログインを受け取ったときに無限ループを回避するための解決策を誰かが私に提供できますか?