开发者社区 问答 正文

java为什么一定要close( )才行?

服务端:
ServerSocket ss=new ServerSocket(40006);
while(true)
{
Socket s=ss.accept();
OutputStream os=s.getOutputStream();
os.write("北京".getBytes());
os.flush();//这里改成os.close( ),客户端就能读到,这是为什么啊?
}

客户端:
try {
Socket s=new Socket("192.168.0.110",40006);
InputStream ins=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(ins));
String line;
while((line=br.readLine())!=null)
{
System.out.println(line);
}

展开
收起
蛮大人123 2016-02-19 14:20:37 3996 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    BufferedReader是根据“n”或者“r”来判断一行的,而这里的服务端根本就没有输入这两个符号,也许close()方法会自动给它加上吧。如果服务端手动给它加上这两个符号中的一个,就可以读出来了。

    2019-07-17 18:44:41
    赞同 展开评论
问答分类:
问答标签:
问答地址: