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