了解Netty-发送和接收对象

了解Netty-发送和接收对象,netty,Netty,虽然我花了几个小时复习教程,但我很难理解Netty。我想在客户端和服务器之间发送几个不同的对象,但我不知道如何正确地执行。似乎可以序列化一个对象,然后像那样发送它,然后在接收端将其合并到该类的对象中。然而,我读到关于这个物体的大小可能有限制。另外,我不知道如何处理处理处理程序的channelRead函数,因为当对象未完整接收时,也会调用它们。我可以等到调用channelReadComplete并将对象重新组合在一起吗 因为我想要两个不同的可变长度的对象,所以我还想知道是否可以使用ByteBuf来

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

因为我想要两个不同的可变长度的对象,所以我还想知道是否可以使用ByteBuf来代替,并以某种方式读取保存对象类型信息的第一个字节,并以某种方式将剩余接收字节转换为正确的对象类型

我真的很感谢你在这方面的帮助


TeaDrinkerJoe

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

Netty Github中有一个简单的对象传输示例,您可以检查这一点。此外,您还可以编写自己的自定义编码器和解码器,用于传输不同类型的对象,并分别处理它们。但请记住,netty只能通过其通道中的ByteBuf或Fileregion。