java - Java中套接字的有效使用

标签 java sockets signals

我有一个应用程序,我必须在两个实体之间发送信号和数据。 哪种方式是最佳实践?为什么?

  1. 打开 4 个套接字,其中 2 个用于双向信号,2 个用于双向数据
  2. 打开 2 个套接字,分别用于数据和信号
  3. 只需打开 1 个套接字并过滤信号和数据

最佳答案

首先,套接字是全双工的,即您不需要单独的套接字(连接)来发送和接收。

其次,如果不了解更多细节,很难说清楚。然而,了解 HTTP(命令/ header 和数据的一个连接)和 FTP(命令和数据的单独连接)的历史似乎 HTTP 设计者做出了更好的选择。两个连接需要维护更多代码,而且某些防火墙不喜欢在传输大量数据时挂起、空闲的 FTP 命令连接。

因此,采用一个连接,很容易区分信号和数据(标志、 header 等),而且传入和传出 channel 是完全正交的。

关于java - Java中套接字的有效使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12988395/

相关文章:

java - 从命令行 - java.lang.ClassNotFoundException : org. slf4j.LoggerFactory

java - 如何使用 docker-compose 在多个容器之间传递参数

java - 如何检测和处理CXF中的写入超时

c++ - SSL_connect() 产生证书验证失败

java - JNI 返回 Signal 7 函数试图从 C++ 调用 Java

Java if() 语句不起作用

java - 工厂方法中的依赖注入(inject)导致 NullPointerException

Linux内核错误?创建新套接字默认为非阻塞

bash - 我应该以什么顺序发送信号以正常关闭进程?

c++ - 覆盖 Ctrl-C