0

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


当然是在谈论http://docs.oracle.com/javase/6/docs/api/java/nio/channels/WritableByteChannel.html

4

1 回答 1

0

别担心。TCP 中没有“消息”之类的东西。TCP 可能会以任何它喜欢的方式破坏您的写入,并且接收器可能会在一次读取或 N 或介于两者之间的任何方式中接收它。

于 2013-04-30T01:35:25.770 回答