2

我正在做一个项目,目前我有一个网络服务器。我必须添加功能,以便对于每个请求,我需要向其他服务器发送多个请求,获取响应,并将结果发送回原始客户端。这些服务器的吞吐量很高,所以我开始担心套接字的数量以及设置新线程/套接字以通过许多套接字发送许多请求的速度。所以我开始认为有一个(或几个连接)对每个客户端开放将有助于解决这个问题。不过,我不确定持久连接和增强 ASIO 是如何工作的。我有一些问题:

-如何使用 ASIO tcp 套接字设置保持活动时间。

- 我可以通过同一个套接字发送多个并发请求吗?我会遇到结果顺序的问题吗(每个结果都应该有一个 Id,所以我的意思不是顺序为乱序发送的结果,而是更多的数据包顺序,如果响应是多个数据包,我会对数据包的顺序有问题吗)。

如果这也很重要,所有请求都是 HTTP GET/POST 请求。

本主题的任何信息将不胜感激。谢谢。

4

1 回答 1

2

TCP 套接字充当数据流,您在一端写入的数据将在另一端以相同的顺序接收。如果您的协议可以处理它,您可以通过同一个套接字发送多个请求。

您提到并发请求,因此您需要非常小心,不要交错两个不同请求的写入调用。如果您可以确保每个结果都是原子写入的,那么我认为将套接字用于多个请求没有问题(您可以使用回复队列来做到这一点)。

您可以在此处设置标准套接字保持活动状态。

于 2013-04-15T18:42:18.693 回答