我有一个应用程序,我必须在两个实体之间发送信号和数据。 哪种方式是最佳实践?为什么?
- 打开 4 个套接字,其中 2 个用于双向信号,2 个用于双向数据
- 打开 2 个套接字,分别用于数据和信号
- 只需打开 1 个套接字并过滤信号和数据
最佳答案
首先,套接字是全双工的,即您不需要单独的套接字(连接)来发送和接收。
其次,如果不了解更多细节,很难说清楚。然而,了解 HTTP(命令/ header 和数据的一个连接)和 FTP(命令和数据的单独连接)的历史似乎 HTTP 设计者做出了更好的选择。两个连接需要维护更多代码,而且某些防火墙不喜欢在传输大量数据时挂起、空闲的 FTP 命令连接。
因此,采用一个连接,很容易区分信号和数据(标志、 header 等),而且传入和传出 channel 是完全正交的。
关于java - Java中套接字的有效使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12988395/