gpt4 book ai didi

c++ - 客户端到客户端套接字通信

转载 作者:行者123 更新时间:2023-11-30 17:54:29 26 4
gpt4 key购买 nike

我有一个客户端/服务器程序,允许通过服务器生成的线程为多个客户端提供服务。目前该程序仅与服务器通信,但是我现在想重新设计该程序,以便客户端可以与另一个客户端建立通信。在设计方面我没有太多经验,不知道什么是正确的方向。最初我考虑通过服务器线程进行通信,但是我不确定如何通知该线程的客户端另一个客户端想要建立通信。

例如我想从 cli A 到 cli N 进行通信:

Cli A <---> SerThread A <------> Main Thread <------> SerThread N <---> Cli N

我不确定如何告知 Cli N Cli A 需要与其通信。

在客户端从套接字读取数据之前,它不会知道另一个客户端想要与其通信。因此,如果 Cli N 处于等待用户输入直到发送/接收的状态,它不会知道。我需要一种方法来立即通知客户端通信正在等待它。

我想得越多,我就越困惑,所以在我正确尝试设计这个之前,我可能需要一些指导。

最佳答案

好吧,你可以让它像开关一样工作:)我假设您想通过服务器在两个客户端之间建立连接,对吧?如果是这样,您需要做的是给每个客户一个序列号。然后从客户端向服务器发送一个“请求”,其中包含您正在搜索的客户端的信息。意思是带有序列号的数据包。然后,服务器可以将信息广播到已连接的客户端列表。在客户端,客户端将通过服务器接收序列号。如果客户端收到的序列号与自己的序列号匹配,则客户端将向服务器返回true。如果不是,它将发出 false。然后,下次搜索该客户端时,服务器将已经知道它在哪里,并且它将仅将消息发送到该特定客户端。如果客户端明显断开连接,序列号将被删除,服务器将丢失有关该客户端的数据。

关于c++ - 客户端到客户端套接字通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920863/

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