我最近写一个JAVA通信程序,为什么我才服务器端发送一次的消息,到客户端 会分多次把这个消息读出来? 请大家给我讲讲read()方法的机制,它一次读多少数据是什么决定的? 急,谢谢了。
我传输的数据并不大,比如说我在服务器端用write方法写“WWWWWWWWWWWWWWW” 这么个字符串,客户端的read方法可能会分3次或4次读这个字符串。
我传输的数据并不大,比如说我在服务器端用write方法写“WWWWWWWWWWWWWWW” 这么个字符串,客户端的read方法可能会分3次或4次读这个字符串。
解决方案 »
- 如何获取接收到的udp包的ip地址和port号啊?
- 关于JAVA打包和扩大JVM内存的纠结问题
- java通过代理验证,访问外网
- 关于数据库表设计的问题
- java中不知道一个方法的返回值变量类型时,怎样得到这个变量的数据类型??
- key可以相同,value不同,但value的值要求不重复,用什么保存好,或者有什么好的保存方式?
- 高分求教:java/sql/Savepoint包的问题。
- 最简单的APPLET程序。小程序查看器能用,HTML直接打开是叉叉,求教
- 请教jdk1.4.0 安装问题 for win2000
- 用JAVA开发企业MIS系统,需要注意那些?
- 用JSP怎么实现对图像调节亮度放大镜的代码
- java.lang.AbstractMethodError异常,为什么在web下出此异常?
int offset,
int length)
throws IOException将字符读入数组中的某一部分。 指定者:
类 Reader 中的 read
参数:
cbuf - 目标缓冲区
offset - 以其处开始存储字符的偏移量
length - 要读取的最大字符数
返回:
读取的字符数,如果已到达流的末尾,则返回 -1
API上找到,设置好最大字符数就可以了,read是按字节读的
socket传输的字节流,它的传输不是一次完成的,而是分包发送完成的。
只是所有字节之间先后顺序不变
但每次从缓存区接收的只是缓存收到的数据
在服务器端发送数据后,假如客户端不停的读,每次可能只会读到一部分就是这个原因了不知道有没有说明白
你让它一直读就是贝!
read()一次只读一个字节
我一般用BufferedReader readLine()