【发布时间】:2012-02-14 08:01:10
【问题描述】:
处理需要发送到服务器的数据的最佳方式是什么?我有一个多线程客户端,在所有线程中都有需要发送到服务器的数据。但是当我启动服务器时,有时会同时发送数据包。所以当时的数据是不正确的。
我想,让我们创建一个每 x 毫秒发送到服务器的堆栈。这是一个好方法吗?
【问题讨论】:
标签: c++ windows sockets client
处理需要发送到服务器的数据的最佳方式是什么?我有一个多线程客户端,在所有线程中都有需要发送到服务器的数据。但是当我启动服务器时,有时会同时发送数据包。所以当时的数据是不正确的。
我想,让我们创建一个每 x 毫秒发送到服务器的堆栈。这是一个好方法吗?
【问题讨论】:
标签: c++ windows sockets client
您可以使用消息队列结构。服务器中只有一个队列,每次消息到达队列时,它都会被添加到队列的末尾,因此即使消息是同时发送的,它们也会被排序。之后,通过使消息出队来处理队列中的消息。您可以使用许多开源消息队列结构,因此您不必从头开始实现它。 您不必等待 x 秒即可将数据发送到此结构中的服务器。这将使您的系统更快。
希望对你有帮助
【讨论】:
为每个客户端线程打开一个套接字。这样服务器就可以从它来自哪个线程中分离出来,并且一切都井井有条。
【讨论】: