gpt4 book ai didi

sockets - TCP 多连接与 1 连接(应用程序管理)

转载 作者:可可西里 更新时间:2023-11-01 02:51:51 25 4
gpt4 key购买 nike

我需要一些建议...我正在构建一个桌面应用程序,其中每个窗口都需要用户不断输入(例如单击、键入、鼠标移动等事件)以发送到服务器。服务器还发送持续的反馈,例如(刷新对话框中的一些数据、文本、新对象等)

起初我想我会使用 HTTP,但现在选择使用纯 TCP。

我的问题是:我应该使用一个 TCP 连接并在“应用程序层”处理来自服务器的所有信息,还是应该创建多个连接(例如每个窗口一个连接并让操作系统处理多个 TCP 管道)?

我可以对这 2 个想法中的任何一个进行编程,但在性能和带宽方面谁的效率更高?

更新1

  • 大约有 2000 个客户同时使用该系统
  • 每个客户端同时使用2~3个窗口

最佳答案

这在很大程度上取决于您的具体应用,但在可能的情况下我会选择多个连接,它有多个优点:

  • 多个组件(在您的情况下为窗口)之间没有队头阻塞。
  • 甚至在套接字层上也可以使用多处理/多线程(例如,您可以有 1 个线程/套接字)。
  • 您不需要自己在 TCP 之上构建多路复用器协议(protocol)。

您不想这样做的唯一原因:

  • 您缺少临时端口。这通常不是问题,除非您谈论的是数以万计的长生命周期套接字,或者您在一些非常严格的 NAT 设备后面工作。
  • 每个插槽的操作系统开销(内存/处理能力)是不可忽略的。如果这对任何像样的现代操作系统都是正确的,我会感到惊讶,但衡量就是知道。

关于sockets - TCP 多连接与 1 连接(应用程序管理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27748913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com