• Post Reply Bookmark Topic Watch Topic
  • New Topic

telnet client timeout using BufferedInputStream  RSS feed

terry Kiernan
Ranch Hand
Posts: 31
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a case where by i am using BufferedInputStream I am waiting for the response I have sent within the telnet session.
If the response is what I expect all is fine, However if the response is not what the application expects the session hangs and won't time out ...
This is my code i have below: can you spot something why this piece of code will not time out when it has finished reading the number of bytes and hasn't found the matchString. ?
Your help much appreciated !

WaitResponse waitingFor(String[] tokens, long timeout) throws IOException {
long start = System.currentTimeMillis();
long deadline = start + timeout;

StringBuffer response = new StringBuffer();
String matchingToken = null;
for (; null == matchingToken; matchingToken = match(response, tokens)) {
int charread = 0;
while ((charread = is.read(mB, 0, mB.length)) <= 0) {
long now = System.currentTimeMillis();
if (now > deadline) {
throw new IOTimeoutException(TimedOut);
try {
} catch (InterruptedException ignored) {
String mS = new String(mB, 0, charread);

return new WaitResponse(response.toString(), matchString);
[ December 08, 2008: Message edited by: terry Kiernan ]
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!