您的位置:首页 > 其它

SocketChannel的read值为0

2016-01-10 00:09 211 查看
读取的时候按照以下方法,记得要buf.clear()才能留有空间接收-1

while ((numBytesRead = socketChannel.read(buf)) != -1) {
if (numBytesRead == 0) {
// 如果没有数据,则稍微等待一下
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
continue;
}
// 转到最开始
buf.flip();

/*处理buf中的数据*/

// 也可以转化为字符串,不过需要借助第三个变量了。
// buf.get(buff, 0, numBytesRead);
// System.out.println(new String(buff, 0, numBytesRead, "UTF-8"));
buf.clear();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: