二进制与非二进制套接字的Java编程区别

3

我听说存在二进制通讯。作为Java的初学者,我使用从java.sun.com教程中学习的基于纯文本的套接字。因此,我想知道使用二进制套接字有什么好处?为什么我应该使用它?您有哪些关于二进制通信的资源可以推荐?

4个回答

3
我建议您查看对象流,它可以允许在Java虚拟机之间(如果需要跨网络)通过套接字连接简单地传递对象的二进制数据。

Java Sun教程是一个很好的资源,可以从基本I/O部分开始学习。


2

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


1
更不用说,它还更容易调试。因为你可以嗅探数据包,而且内容是人类可读的。 - hookenz
那也绝对是真的。 - Taylor Leese

1

如果您有特定的原因(例如极端性能)需要直接使用套接字上的二进制数据,则只需直接使用二进制数据与套接字进行交互。但是,使用二进制数据直接在套接字上并不能保证高性能。

Java提供了许多抽象和库来促进网络通信,同时保护程序员免受低级别的繁重和容易出错的工作:

这只是一些例子。


1
正如其他答案中所提到的,除非绝对必要,否则应避免使用原始套接字通信。我建议使用XML作为通信数据格式,而不是对象,因为它可以轻松地与运行其他语言的客户端进行通信,并且更容易调试。XStream是一个很棒的库,可以通过最少的支持代码来实现对象<-->xml转换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接