标题:一个 流 方法的问题
只看楼主
chump345
Rank: 1
来 自:家里蹲大学
等 级:新手上路
帖 子:108
专家分:5
注 册:2007-11-24
结帖率:93.33%
已结贴  问题点数:5 回复次数:1 
一个 流 方法的问题
程序代码:
BufferedReader sin = new BufferedReader(
                            new InputStreamReader(System.in));
      System.out.println("Client:"+is.readLine());
      System.out.print("Server:");
      line=sin.readLine();



上面程序是服务端与客户端交互的一小段程序代码~
写过聊天室的都该知道
上面的为服务器端的代码~
当语句执行到System.in不是就堵塞了吗`
为什么从客户端输入一个字符后`
System.in后面的语句马上就执行了`
但是我并没有在服务器端输入任何信息`
请高手解释下`
搜索更多相关主题的帖子: 服务器 客户端 聊天室 服务端 
2009-11-05 13:28
vecomwa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:63
专家分:138
注 册:2009-9-1
得分:5 
System.in的确是要阻塞,但是那时在你没有输入的前提下,如果你输入之后按了回车确认那么它就会把你输入的东西读入内存,这样后面的语句就开始执行了。
要是按照你的意思输入之后仍然还阻塞在那里那你所输入的东西永远都读不进内存了,这样程序还怎么运行呢?

当然你也可以在外面套一个死循环,这样你每输入完一句电脑读入内存之后马上又会回到System.in这里等待你输入。
2009-11-05 14:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-291112-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.492997 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved