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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sanguodouble1 中级黑马   /  2014-4-18 20:03  /  734 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 sanguodouble1 于 2014-4-20 10:29 编辑

在socket中进行传输时,为什么用DataInputStream的readUTF方法可以读取数值,而用BufferedReader的readLine()方法就一直处于读取状态呢?

2 个回复

倒序浏览
1 因为readLine的意思是一直读直至回车符或者流结束。
2 可能你使用了网络流(Socket之类),但是对方并没有发送回车而且没有结束流,所以你的程序在等待。
如果是网络流,你应该在收取数据前先与服务器沟通一下,知道传递过来的数据有多长,又或者以什么作为结束符,否则是无法正确的完整接收到服务器的数据
回复 使用道具 举报
通过键盘录入出现的
现象:客户端和服务端两端都在等待,为什么呢?
因为客户端和服务端都有阻塞式方式,这写方法没有读到结束标记
那么就一直在等待,而导致两端都在等待
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马