【问题标题】:ByteBuffer vs ChannelBufferByteBuffer 与 ChannelBuffer
【发布时间】:2012-09-05 06:19:37
【问题描述】:

我正在使用一些在 netty 之上实现的框架。我正在使用以下两个选项从客户端向服务器发送消息。我想这两个 sn-ps 应该将相同的字节写入套接字,它在服务器端的行为是不同的。有什么不同?

选项 1:好的

ChannelBuffer buf = ChannelBuffers.buffer(1);
buf.writeByte(0x1c);
e.getChannel().write(buf);

选项 2:失败

ByteBuffer buf = ByteBuffer.allocate(1);
buf.put(0x1c);
e.getChannel().write(ChannelBuffers.wrappedBuffer(buf));

【问题讨论】:

    标签: java asynchronous netty bytebuffer


    【解决方案1】:

    在您可以将 ByteBuffer 写入 Channel 之前,您必须调用

    buf.flip();
    

    这使得字节对写入可见。

    【讨论】:

    • 是的,现在它产生了相同的结果。我在哪里可以阅读更多关于这个问题的性质的信息。谢谢!
    • @NikolayKuznetsov 一个简单的解释你可以在docs找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多