Socket超时之后用Scanner读取数据的问题
我设置了socket的超时时间,并用一个Scanner读取Socket数据:
sock.setSoTimeout(5000);
Scanner in = new Scannner(sock.getInputStream());
然后主要读取过程是这样的:
try{
in.nextLine();
}catch(NoSuchElementException ex) {
ex.printStrack();
}
问题是当出现一次读取超时并捕捉到NoSuchElementException 异常之后,下次即使有数据可读了,in.nextLine()也会直接返回null.请问这是为什么,怎么解决呢?