我目前正在修改我們現有的專有套接字封裝代碼以使用boost asio,以便它可以爲我們完成一些繁重的工作。也許我們現有代碼中最複雜的部分是多播處理代碼。該代碼允許我們的中間層服務器(我可以在一個系統中使用多個服務器)將多播發送到客戶端框,客戶端框使用這些框向服務器用戶呈現更新。有沒有一種「很好」的方式來處理來自多個來源的重組多播?
代碼複雜且容易出錯的原因是它使用了大量的原始緩衝區來根據它們來自哪裏來重組組播流。看來即使有了Boost.Asio,我也不得不面對同樣的問題,所以在我陷入困境之前,我認爲值得詢問其他人是如何處理這種情況的。
這似乎是一個非常常見的用例。有沒有什麼可以幫助我完成這項工作,而不需要我現在擁有的代碼?還是有一個既定的C++模板(Boost或其他)可以完成這種工作?
很明顯,我可以讓自己更容易,並使用STL容器來緩衝數據包而不是原始數組,但是此代碼需要非常高的性能。在大型安裝中,有大量數據包在飛行,並且需要儘可能接近實時地進行響應。
在此先感謝您對此事的任何想法。
傑米