请问从socket取得的InputStream的readLine()方法是不是自动阻塞的?
String inmsg;
while (true) {
try {
inmsg = in.readLine();
System.out.println( "inmsg sent by server!: " + inmsg);
} catch (Exception ee) {
}
}
其中的in是从socket的getInputStream()取得的输入流。
想问的是,在永真的while循环里,是不是只有当inmsg = in.readLine();成功的从in里读取了一行文本,程序才继续往下走?
如果不是,循环体执行的太频繁,浪费资源。
那么,具体的情况是如何的?
------解决方案--------------------当然是自动阻塞的! 想不阻塞用nio,这个肯定阻塞!
------解决方案--------------------in.readLine();前面的程序是否已经读取过一次了,如果只有一行,又读取过一次了, in.readLine();就会取不到值的
------解决方案--------------------应该看你的socket是否阻塞
------解决方案--------------------in.readLine()的时候在等待,要有东西可读,再能读下去,另外,如果用了缓存的流,缓存不够,也会等待,读不下去.