【问题标题】:Understanding Netty - sending and receiving objects理解 Netty - 发送和接收对象
【发布时间】:2018-11-02 10:13:36
【问题描述】:

虽然我花了几个小时阅读教程,但我很难理解 Netty。我想在客户端和服务器之间发送几个不同的对象,但我不知道如何正确执行。似乎可以只序列化一个对象并像这样发送它,然后在接收端将它组合到该类的一个对象中。但是,我已经读到该对象的大小可能存在限制。另外,我不明白如何处理处理程序的 channelRead 函数,因为当没有完整接收对象时也会调用它们。我可以等到调用 channelReadComplete 后再将对象重新组合在一起吗?

由于我想要几个具有可变长度的不同对象,我还想知道是否可取并且可以使用 ByteBuf 并以某种方式读出保存有关对象类型信息的第一个字节并以某种方式转换接收到的剩余部分正确类型的对象中的字节。

我非常感谢您对此的帮助。

饮茶者乔

【问题讨论】:

  • Netty Github 中有一个简单的对象传输示例,您可以检查一下。此外,您可以编写自己的自定义编码器和解码器来传输不同类型的对象并分别处理它们。但请记住,netty 只能在其通道中传递 ByteBuf 或 Fileregion。 github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/…

标签: netty


【解决方案1】:

您可以使用 netty Encoder 将对象编码或序列化为字节,并编写 Decoder 以解码或反序列化接收到的字节。您可以拥有自己的序列化和反序列化实现,但请确保您可以区分连续字节流中的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    相关资源
    最近更新 更多