我的上一个项目中,就是先在上层做一个二维数组,然后将第一维下标都丢进一个称为空闲队列的数据结构中,用户从空闲队列中获取数组的下标,
往数组(内存块)中填充数据后,并添加都一个结构体中后,发送到通讯的底层队列中,底层用完内存块后,
再通过一个被上层继承修改后的函数指针,将这个数组下标扔回上层的空闲队列中。
其实这就是模仿定长内存分配。
虽然我的应用,没有LZ那种需要将A口数据发到B口的需求,但之所以没有简化成,底层提供以一个 包括数据包在内的结构体 为最小元素的队列,
原因是:我经常需要发送一些常量式的数据包,如果数据需要复制到底层队列中的话,那就太麻烦了~当前的办法只需要将这个常量数据包的指针丢进结构体就行了。
发送最小单位是包,而不是字节的原因是,通讯协议要求的~~ |