首页 > 其他 > 详细

2、关于协议数据包的设计

时间:2020-02-11 16:48:29      阅读:67      评论:0      收藏:0      [点我收藏+]

2.1、 数据包packet定义

padding部分为来适应不同的接口。

typedef struct __attribute__((__packed__)) {
    uint8_t padding[xsp_PADDING_BYTES];
    uint16_t length;                
    xsp_id_t id;                    
    union {
       uint8_t data[0];
       uint16_t data16[0];
       uint32_t data32[0];      
    };
} xsp_packet_t;

2.2、 数据包头部设置

This define must be equal to the size of the packet overhead in csp_packet_t.
It is used in csp_buffer_get() to check the allocated buffer size against the required buffer size.
分配的缓冲区的大小应该注意数据和头部大小,初始化时要求的字节加上数据包头部字节才是真的缓冲区大小。

#define CSP_BUFFER_PACKET_OVERHEAD  (sizeof(csp_packet_t) - sizeof(((csp_packet_t *)0)->data))

2、关于协议数据包的设计

原文:https://www.cnblogs.com/khldragon/p/2-guan-yu-xie-yi-shu-ju-bao-de-she-ji.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!