2010-01-28 88 views
3

我听说存在二进制通信。我是java的初学者,我使用纯文本,我从java.sun.com学习套接字教程。所以我想知道二进制插件有什么好处?为什么我应该使用它?你可以建议关于二进制通信的资源?二进制与非二进制强化java

回答

1

如果您有特定的原因这样做,您只能直接在套接字上使用二进制数据 - 例如极高的性能。如果你有这样一个原因,你会知道它,并通过套接字直接使用二进制数据并不能保证高性能。

在Java中提供了许多抽象和图书馆,以方便网络通信,同时保护程序从劳动密集型和容易出错的工作在低级别:

只是一些例子。

2

通过套接字发送二进制数据显然会在带宽使用方面更有效率。但是,这也增加了必须在套接字上封送和解组数据的复杂性。在性能不重要的情况下,发送文本数据(XML,JSON等)更直观,更易于在许多情况下进行开发。

+1

更何况,更容易调试。因为你可以嗅探数据包,而且内容是人类可读的。 – Matt 2010-01-28 00:44:46

+0

这绝对是真的。 – 2010-01-28 00:47:29

3

我建议你看看Object stream,它允许通过Socket连接从一个Java VM到另一个Java VM的简单二进制传递(如果需要,通过网络)Objects

Java Sun教程是一个很好的开始资源。请参阅Basic I/O section

1

正如其他答案中提到的,除非绝对必要,否则应该避免原始套接字通信。我建议将XML作为通信数据格式而不是对象,因为它允许您根据需要轻松地与运行其他语言的客户端进行通信,并且更易于调试。 XStream是一个伟大的库,用于以最少的支持代码方便对象< - > xml转换。

+0

谢谢你的建议! – 2010-01-28 14:46:12