我需要编写一个可以接收不同消息片段的函数,然后将它们拼凑在一起。片段是一个类的形式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
作为键,指向将容纳片段的容器),但会感谢任何建议。
谢谢!