【发布时间】:2011-11-01 00:39:49
【问题描述】:
我正在编写一个客户端-服务器应用程序,其中一个要求是服务器在收到来自其中一个客户端的更新后,能够将新数据推送到所有其他客户端。这是一个 C++ (Qt) 应用程序,旨在在 Linux(客户端和服务器)上运行,但我更多的是寻找关于它应该如何工作的高级概念想法(尽管低级想法也很好)。
服务器:
它需要(在它的其他职责中)保持一个套接字打开,监听来自可能 n 个不同客户端的传入数据包,大概是在后台线程上(我没有写太多关于套接字代码的内容)除了学校里的一些 rinky-dink 例子)。从客户端获取这些数据后,它会对其进行处理,然后将其发送给所有客户端,对吧?
当然,我不确定它实际上是如何做到的。我猜这意味着它必须与每个客户端(至少是活动客户端)保持持久连接,但我什至从概念上不明白如何维护这个连接(或这些连接的列表)。
那么,我应该如何处理呢?
【问题讨论】:
-
最好将 TCP 连接视为数据流,而不是 数据包。
标签: c++ qt sockets client-server push