gpt4 book ai didi

c - TCP socket编程中服务端如何判断消息是哪个客户端发送的

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

我们在项目中使用 linux TCP 套接字。服务器正在等待使用 accept() 调用的连接请求,一旦来自客户端的连接请求到来,服务器就会创建一个线程,该线程将处理与客户端的进一步通信。任何人都可以让我知道服务器是否可以确定发送消息的客户端(进程 ID)。

如果有任何消息来自驱动程序,我们的服务器会将该消息广播给所有客户端。在该领域的一个错误中,UI 挂起,UI 团队提示他们没有收到消息。但是我们看到了日志,并且我们正在向所有连接的客户端广播。所以我们只是想证明我们正在向哪个进程 ID 发送消息。

最佳答案

不,您只有客户端的 IP 地址和源端口。在大多数情况下,这不足以识别客户身份。如果除了 LAN 中的所有客户端或通常它们的 IP 地址都是可区分的(它们具有唯一的公共(public)/私有(private)地址),您可以使用客户端的 ip 地址,但对于经过 NAT 的客户端,它们的 ip 地址将是相同的。请注意,即使您有客户端的 IP 地址,它也可用于区分客户端,它不会报告客户端进程 ID 或与客户端相关的任何动态内容。

你必须实现一个协议(protocol),所有客户端都将他们的身份信息发送到服务器,这样服务器就会知道他们。进程 ID 或与客户端相关的任何内容都可以通过您的协议(protocol)发送。

关于c - TCP socket编程中服务端如何判断消息是哪个客户端发送的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41206855/

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