我听说存在二进制通信。我是java的初学者,我使用纯文本,我从java.sun.com教程中学习套接字。所以我想知道二进制socketing有什么好处?为什么我应该使用它?您可以建议哪些资源用于二进制通信?
答案 0 :(得分:3)
我建议你看一下Object stream
,它允许通过Socket连接将Objects
从一个Java VM简单地二进制传递到另一个(如果需要,可以通过网络)。
Java Sun Tutorial是一个很好的资源。请参阅Basic I/O section。
答案 1 :(得分:2)
在带宽使用方面,在套接字上发送二进制数据显然会更有效。但是,它还增加了必须在套接字上编组和解组数据的复杂性。如果性能不是很关键,在许多情况下发送文本数据(XML,JSON等)更直观,更容易开发。
答案 2 :(得分:1)
如果您有特定的理由,您只能直接使用套接字上的二进制数据 - 例如极端性能。如果你有这样的理由你就会知道它,并且直接在套接字上使用二进制数据并不能保证高性能。
Java和库中提供了许多抽象,以促进网络通信,同时保护程序员免受低级别的劳动密集型和容易出错的工作:
只是一些例子。
答案 3 :(得分:1)
如其他答案中所述,除非绝对必要,否则应避免使用原始套接字通信。我建议XML作为通信数据格式而不是对象,因为它允许您根据需要轻松地与运行其他语言的客户端进行通信,并且更容易调试。 XStream是一个很棒的库,可以使用最少的支持代码来促进对象< - > xml的转换。