<分区>
我正在用 C++ 编写客户端-服务器应用程序(TCP 协议(protocol))。
我有可能客户端可以从多个服务器接收数据。
为了解决这个问题,我创建了一个套接字连接列表。
在循环中,在每个套接字上,我执行以下操作:
- 尝试在套接字上接收数据
- 将其放入缓冲区
- 处理缓冲区数据
- 清除缓冲区
- 对下一个套接字执行相同的步骤
现在在我的设计中,最初我为所有连接创建了一个公共(public)缓冲区。但我建议在网络负载过重的情况下,收到的电报可能不是完整的电报,可能是电报的一部分。因此,为了使电报完整,我将不得不等待同一套接字的下一次迭代,甚至连串/识别电报也将是一个复杂的过程。
要处理这种情况,一种解决方案可能是为每个连接提供专用缓冲区。
有人可以建议更优化/更好的解决方案来避免为每个连接创建专用缓冲区吗?