首页 > 其他 > 详细

协议设计:可变长帧的实现  

时间:2014-12-28 01:49:18      阅读:246      评论:0      收藏:0      [点我收藏+]
/*  
 *Author  : DavidLin         
 *Date    : 2014-12-25pm         
 *Email   : linpeng1577@163.com or linpeng1577@gmail.com         
 *world   : the city of SZ, in China         
 *Ver     : 000.000.001         
 *For     : threads for rxtx!      
 *history :     editor      time            do         
 *          1)LinPeng       2014-12-25      created this file!         
 *          2)         
 */  
        
    信令帧,数据帧的长度不同,不同数据帧之间的长度更是千差万别,所以通讯协议中,帧的可变长实现是有重要的现实意义的。
如何实现:
        1.通过帧尾部的移位;
        2.逐层增加长度项。

比如有2层协议
typedef struct net_packet_t {
    ip_packet_t    ip;
    size_t    size;    //用于获取ip包长度
};

typedef struct ip_packet_t {
    char head;
    char pay[MAX];    //需要移位变长
    size_t chksum;
    char tail;
};

phy_tx(&net,  net.size);    //发送格式,根据帧实际长度发送


协议设计:可变长帧的实现  

原文:http://linpeng.blog.51cto.com/9779987/1596733

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