日期:2014-05-20  浏览次数:20581 次

请问从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()的时候在等待,要有东西可读,再能读下去,另外,如果用了缓存的流,缓存不够,也会等待,读不下去.