【问题标题】:Multiple TCP connection from one client to one Server at the same time多个 TCP 连接同时从一个客户端到一个服务器
【发布时间】:2019-03-15 14:27:32
【问题描述】:

我的问题也在标题中。例如,我是一个客户端,我正在尝试同时连接一个服务器。

情况是这样的

服务器IP:10.10.10.10 服务器端口:1010

客户端有两个线程。其中一个线程与服务器连接,并保持连接处于活动状态。始终连接。总是从服务器接收死或活信号。

第二个线程正在发送消息线程。该线程从其兄弟线程获取信息,如果连接的主机存活,则发送消息。

我尝试使用 netty 在 Java 中实现这种情况,但是消息发送者线程无法与主机建立连接。

这是我的代码或 tcp 协议的问题吗?

谢谢。

【问题讨论】:

  • 问题是你的代码。演示:打开网络浏览器,进入 stackoverflow。打开第二个网络浏览器,转到 stackoverflow。如果你同时做这两件事,互联网就不会爆炸;他们都工作。
  • 但是这些是不同的过程,不是吗?线程在同一个进程中。有区别吗?
  • 服务器与客户端进程模型无关。

标签: java multithreading tcp


【解决方案1】:

tcp 完全支持这个,所以你应该调试代码。

在长距离互联网连接上,甚至可以使用多个并行连接来实现比使用单个连接更高的吞吐量。

【讨论】:

  • 好吧。明天我会分享我的代码。感谢您的提示
【解决方案2】:

可能是由于服务器处理连接的方式。如果它是单线程的并且一次只处理一个连接,那可能就是原因。这意味着,服务器保留来自 thread1 的第一个连接,虽然这仍然不完整,但它不能接受另一个连接(在您的情况下来自 thread2)。尝试在单独的线程中处理每个连接或使用 java.nio.channels.Selector 进行多路复用。

(这可能是一个评论。但我没有代表。)

【讨论】:

  • 我无权访问服务器的代码。我什至没有机会看到代码。但正如我所说,我明天会分享我的代码。非常感谢
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
  • 2016-03-02
  • 2023-04-08
  • 1970-01-01
  • 2021-08-17
相关资源
最近更新 更多