以下是java实现获取telnet返回值的代码,当对端返回异常时,程序会卡在in.read()方法中,以下代码就无法执行。如何能避免这种情况的发生,如设置超时之类的,10秒超时,自动退出该线程。
public String readUntil(String pattern) {
try {
char lastChar = 0;
lastChar = pattern.charAt(pattern.length() - 1);
StringBuffer sb = new StringBuffer(1536);
char ch = (char)in.read();
while (a!=-1) {
sb.append(ch);
if (ch == ':') {
if (sb.toString().endsWith("Username:")) { return "Username";
}
}
ch = (char)in.read();
}
} catch (Exception e) {
System.out.println("test@@@@@@@@@@@@@@@@@@@@@");
e.printStackTrace();
return null;
}
return null;
}javaexception
public String readUntil(String pattern) {
try {
char lastChar = 0;
lastChar = pattern.charAt(pattern.length() - 1);
StringBuffer sb = new StringBuffer(1536);
char ch = (char)in.read();
while (a!=-1) {
sb.append(ch);
if (ch == ':') {
if (sb.toString().endsWith("Username:")) { return "Username";
}
}
ch = (char)in.read();
}
} catch (Exception e) {
System.out.println("test@@@@@@@@@@@@@@@@@@@@@");
e.printStackTrace();
return null;
}
return null;
}javaexception
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货