我目前正在修改我们现有的专有套接字包装器代码以使用 boost asio,以便它可以为我们完成一些繁重的工作。也许我们现有代码中最复杂的部分是多播处理代码。该代码允许我们的中间层服务器(在一个系统中可以有多个)向客户端发送多播,客户端使用这些向系统用户提供更新。
代码复杂且容易出错的原因是它使用许多原始缓冲区来根据多播流的来源重新组装多播流。似乎即使使用 Boost.Asio 我也将不得不处理同样的问题,所以在我陷入困境之前,我认为值得问问其他人是如何处理这种情况的。
这似乎是一个非常常见的用例。没有我现在拥有的那种代码,有什么东西可以帮助我完成这项工作吗?或者是否有一个既定的 C++ 模板(Boost 或其他)可以做这种工作?
显然,我可以让事情变得更轻松,并使用 STL 容器来缓冲数据包而不是原始数组,但是这段代码需要非常高性能。在大型安装中,有大量的数据包飞来飞去,它需要尽可能接近实时地响应。
提前感谢您对此事的任何想法。
杰米