A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林翔 中级黑马   /  2012-5-26 23:05  /  1970 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚刚看了视频,毕老师有一个用浏览器客户端接收数据包的例子,是先把数据发送出去浏览器客户端必须先刷新才能接收到数据并且显示出来。
那么在客户端接收数据之前,这个数据存放在哪里?

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
其认为是这样的,老师在第一次启动浏览器时在地址栏里输入主机名和端口名在转到就可以获得服务器返回的信息,在第二次访问时因为第一栏里有了主机名和端口名,所以不用再次输入,这时有两种方法获得服务器修改的信息,一种是点转到,另一种是刷新,其实就是再一次向服务端发送请求,就像我们看实时更新的网络直播一样,服务器那里的信息一直在变,我们要想获得最新的信息就得不段刷新即不断新服务端发送请求,因为每发送一次请求,客户端在获得信息后就会与服务端断开连接以节省资源。
回复 使用道具 举报
暂时存放在流里,或者也可以存在缓冲区当中
回复 使用道具 举报
凡是用BufferedWriter 输出流将数据流写入到socket输出流。发给服务端。都会用到缓存区
                BufferedWriter bufOut =                                         
                new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));  //把信息读取到缓存区,所以下面需要刷新

Java的缓存机制是通过JVM(Java虚拟机)提供的运行时缓存来实现的,由于JVM是不跨平台的(Java的跨平台正是通过JVM的不跨平台来实现的),
所以JVM的缓存机制没有实现本地临时存储,因此你找不到所谓Java的缓存文件夹。,到最后jvm会自动回收这些缓存垃圾


所以在下面要进行刷新操作

//                        bufOut.flush();            //刷新缓存区信息,刷新后会把信息发送到服务端

PrintWriter 流既能接收字节流又能接收字符流,而且还能刷新缓冲区,所以建议你最好用PrintWriter

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
放在了流里边 ,不刷新的话,流就一直在默认等待接收,刷新后就会发送在从新接收
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马