gpt4 book ai didi

linux - Linux 中的 TCP 套接字数据不一致

转载 作者:太空宇宙 更新时间:2023-11-04 11:31:53 24 4
gpt4 key购买 nike

我需要一些关于以下内容的信息。

我正在创建用于跟踪数据的服务器和客户端。客户端发送过来的数据通过wxWidgets显示在GUI上。这是我的问题。

我有两个跟踪客户端,每个客户端在 0.9 微秒内发送 100 条消息的数据。我的问题是服务器接收到的数据顺序不对。

Example:
Actual data:

data from client 1
data from client 1
data from client 1
data from client 2
data from client 1
data from client 1
data from client 1
data from client 2
data from client 1
data from client 1
data from client 2

Received data on server side:
data from client 2
data from client 2
data from client 1
data from client 1
data from client 1
data from client 2
data from client 1
data from client 1
data from client 1

问题:

如何解决这个数据不匹配的问题?我正在使用 TCP 套接字。所有代码都是用 CPP 编写的。

约翰

最佳答案

我认为您不能保证不同主机上两个不相关的 TCP 客户端之间的数据同步。 TCP 仅保证连接中数据的顺序。

保证这一点的一种方法是,每当客户端想要发送一些数据时,将 token 从服务器传递到客户端。当客户端完成发送数据时,可以假定 token 已“使用”。

  1. 客户端:请求发送数据的 token

  2. 服务器:为客户端分配 token

  3. 客户端发送数据并发出数据结束信号

  4. 服务器假定客户端的 token 已过期并且可以自由分配给另一个客户端。

    当然,客户端不应在数据结束后或 token 不可用时发送任何数据。

关于linux - Linux 中的 TCP 套接字数据不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810899/

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