我正在编写一个客户端-服务器应用程序,其中之一的要求是服务器在从一个客户端接收到更新后,能够将新数据推送给所有其他客户端。这是一个C++(Qt)应用程序,旨在在Linux上运行(客户端和服务器都是),但我更多地寻求如何工作的高层概念思想(尽管低层思想也很好)。
当然,我不确定它实际上是如何做到这一点的。我猜这意味着它必须与每个客户端保持持久连接(至少是活动客户端),但我甚至在概念上也不明白如何维护此连接(或这些连接的列表)。
那么,我该如何解决这个问题?
服务器:
它需要(除了其他职责之外)保持一个套接字打开,以便监听来自潜在的n个不同客户端的传入数据包,可能在后台线程上(除了学校里的一些简单例子外,我还没有写过太多关于套接字代码)。在从客户端获取这些数据后,它会处理它并将其输出到所有客户端,对吗?当然,我不确定它实际上是如何做到这一点的。我猜这意味着它必须与每个客户端保持持久连接(至少是活动客户端),但我甚至在概念上也不明白如何维护此连接(或这些连接的列表)。
那么,我该如何解决这个问题?