Java中协议处理的最佳库?

Java中协议处理的最佳库?,java,network-protocols,protocol-buffers,java-io,Java,Network Protocols,Protocol Buffers,Java Io,我有一个设备连接到串行端口,并使用特定的协议与之交互。 我需要根据给定的消息格式编写一个解析器来写/读协议消息 基本上,我需要使用给定的格式在流之间序列化/反序列化对象 我想知道,除了java.IO之外,是否还有专门为此目的而设计的好java库?请记住,该协议是通过串行端口运行的,因此速度可能较慢 我读过谷歌的protocolbuffer,听起来是一个非常有前途的解决方案,但它似乎有自己的序列化格式,我不能使用 谢谢。首先,为什么某些对象的序列化方式很重要?如果图书馆为读者和作者提供两方面的服务

我有一个设备连接到串行端口,并使用特定的协议与之交互。 我需要根据给定的消息格式编写一个解析器来写/读协议消息

基本上,我需要使用给定的格式在流之间序列化/反序列化对象

我想知道,除了java.IO之外,是否还有专门为此目的而设计的好java库?请记住,该协议是通过串行端口运行的,因此速度可能较慢

我读过谷歌的protocolbuffer,听起来是一个非常有前途的解决方案,但它似乎有自己的序列化格式,我不能使用


谢谢。

首先,为什么某些对象的序列化方式很重要?如果图书馆为读者和作者提供两方面的服务,那么为什么还要担心呢。另一方面,如果您有其他一些非基于java的系统也希望读/写该格式,那么您就有问题了

所有序列化库都引入自己的格式

  • java序列化
  • 协议缓冲区
  • 您最喜欢的xml绑定框架
  • 节俭
  • jboss序列化
如果两端都可以使用库,则根据运行时特征(如

  • 速度。。。越快越好
  • 大小。。。越少越好
  • 压缩-可能很重要
  • 如果您想保护其下的层,可能需要进行安全/加密
  • 版本控制以支持随着应用程序的增长而不断演变的消息…(thanx MG)

我认为“版本控制”是列表中另一个重要的故事,因为消息格式已经在硬件中定义和使用。不可能使用上述任何一项。但我仍然对任何库感兴趣,比如说,根据格式定义,可以生成所需的格式化消息,并能够解析回它。这将对通常需要做的繁琐的解析工作有很大帮助。