我需要编写一个可以接收不同消息片段的函数,然后将它们拼凑在一起。片段是一个类的形式msg,它保存着
int message_id
int no_of_fragments
int fragment_id
string msg_fragment
该功能需要做以下
- 检查收到
no_of_fragments == 1的消息 - 如果那时消息没有被分段并且功能可以在这里停止 - 如果
no_of_fragments > 1那么消息是碎片化的- 得到
message_id和fragment_id - 收集所有片段,例如对于
message_id=111 和no_of_fragments=6,系统应确保fragments_id已收集 1-6 - 将碎片拼凑在一起
- 得到
这样做的最佳方法是什么?我认为地图可能有用(以message_id作为键,指向将容纳片段的容器),但会感谢任何建议。
谢谢!