我了解 channel.write(outBuffer) 可能无法写入 outBuffer 的所有内容,因为底层套接字缓冲区已满。然后你必须注册 OP_WRITE 并等待选择器回调。但是我不想写部分消息,我想等到 channel.write 操作能够写出我的完整消息。这可能吗,还是我必须写信才能知道我能写多少?
当然是在谈论http://docs.oracle.com/javase/6/docs/api/java/nio/channels/WritableByteChannel.html。
我了解 channel.write(outBuffer) 可能无法写入 outBuffer 的所有内容,因为底层套接字缓冲区已满。然后你必须注册 OP_WRITE 并等待选择器回调。但是我不想写部分消息,我想等到 channel.write 操作能够写出我的完整消息。这可能吗,还是我必须写信才能知道我能写多少?
当然是在谈论http://docs.oracle.com/javase/6/docs/api/java/nio/channels/WritableByteChannel.html。