【发布时间】:2013-04-23 08:08:40
【问题描述】:
我了解 channel.write(outBuffer) 可能无法写入 outBuffer 的所有内容,因为底层套接字缓冲区已满。然后你必须注册 OP_WRITE 并等待选择器回调。但是我不想写部分消息,我想等到 channel.write 操作能够写出我的完整消息。这可能吗,还是我必须写才能知道我能写多少?
当然是在谈论http://docs.oracle.com/javase/6/docs/api/java/nio/channels/WritableByteChannel.html。
【问题讨论】:
-
你说的是什么频道?频道本身只有
isOpen和close方法:docs.oracle.com/javase/6/docs/api -
@chrisapotek - 由于 Java 中使用 NIO 来指代 java.nio 中的“新 IO”包,因此根据我的回答中的 cmets,将标题更改为“非阻塞 IO”,这我现在正在删除。
标签: java sockets real-time nio nonblocking