社区
Java SE
帖子详情
SOCKETCHANNEL中的READ问题
zjberry
2005-09-16 09:35:59
请问有谁用过SOCKETCHANNEL,其中的READ方法有三种,我想问一下带三个参数的READ(BYTEBUFFER[],OFFSET,LENGTH)方法的具体用法和作用,不知道在JAVA中读取套接字时,有没有像VC中的recv那样可以指定读取的字节的,只读取当前需要长度的字节,后面的信息在下一个READ中继续读取。
谢谢各位大侠指点!感恩不尽!
...全文
191
4
打赏
收藏
SOCKETCHANNEL中的READ问题
请问有谁用过SOCKETCHANNEL,其中的READ方法有三种,我想问一下带三个参数的READ(BYTEBUFFER[],OFFSET,LENGTH)方法的具体用法和作用,不知道在JAVA中读取套接字时,有没有像VC中的recv那样可以指定读取的字节的,只读取当前需要长度的字节,后面的信息在下一个READ中继续读取。 谢谢各位大侠指点!感恩不尽!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjberry
2005-09-19
打赏
举报
回复
问题已解决,这里的READ相当于读结构的概念,以结构为一个单位,如果只需读一个BYTE时,需要指定数组元素的长度为1。可能SOCKETCHANNEL需要提供一个更方便的方法来供用户使用。
谢谢yuguo(feng)!
zjberry
2005-09-18
打赏
举报
回复
问题是这里返回的BYTEBUFFER[]是个数组啊,我不知道怎么继续读第二次?!望不吝赐教!
yuguo
2005-09-17
打赏
举报
回复
int count= READ(BYTEBUFFER[],OFFSET,LENGTH)
读取 指定长度(OFFSET,LENGTH)的字节到BYTEBUFFER,count为读取的长度,和vc差不多,可以读多次,读完为止(count<0).
zjberry
2005-09-17
打赏
举报
回复
顶,请求帮助!
谨慎使用
Socket
Channel
的
read
方法
下面的代码是一个实例化
Socket
Channel
的过程:
Socket
Channel
channel
=
Socket
Channel
.open(); //要设置连接超时
channel
.
socket
().connect(addr,connectionTimeOut_ms); //设置读超时
channel
.
socket
().setSoTimeout(timeou
java nio
socket
Channel
read
返回值代表的意思
当
socket
Channel
为阻塞方式时(默认就是阻塞方式)
read
函数,不会返回0,阻塞方式的
socket
Channel
,若没有数据可读,或者缓冲区满了,就会阻塞,直到满足读的条件,所以一般阻塞方式的
read
是比较简单的,不过阻塞方式的
socket
Channel
的
问题
也是显而易见的。这里我结合基于NIO 写ftp服务器调试过程
中
碰到的
问题
,总结一下非阻塞场景下的
read
碰到的
问题
。注意:这里的场
Socket
Channel
的
read
值为0
读取的时候按照以下方法,记得要buf.clear()才能留有空间接收-1 while ((numBytes
Read
=
socket
Channel
.
read
(buf)) != -1) { if (numBytes
Read
== 0) { // 如果没有数据,则稍微等待一下 try { Th
read
.sleep(1);
NIO
中
Socket
Channel
read
()返回0的原因
转载地址http://blog.csdn.net/cao478208248/article/details/41648359 当
socket
Channel
为阻塞方式时(默认就是阻塞方式)
read
函数,不会返回0,阻塞方式的
socket
Channel
,若没有数据可读,或者缓冲区满了,就会阻塞,直到满足读的条件,所以一般阻塞方式的
read
是比较简单的,不过阻塞方式的
socket
Channe...
java nio
socket
Channel
read
当
socket
Channel
为阻塞方式时(默认就是阻塞方式)
read
函数,不会返回0,阻塞方式的
socket
Channel
,若没有数据可读,或者缓冲区满了,就会阻塞,直到满足读的条件,所 以一般阻塞方式的
read
是比较简单的,不过阻塞方式的
socket
Channel
的
问题
也是显而易见的。这里我结合基于NIO 写ftp服务器调试过程
中
碰到的
问题
,总结一下非阻塞场景下的
read
碰到的
问题
。注意:
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章