关于TLV编码

kekac 2009-04-28 04:31:33
关于TLV编码

我们都知道TLV编码就是TYPE LEN VALUE的数据传输形式,但是,还有一种叫TLV符合(COMPOUND)编码,比如说TYPE =145的服务流参数编码,在TYPE =145 下又分了很多子序号:145.1,145.2,...等。那么这样的复合编码怎么来做呢?还请高手指点,不胜感激。
...全文
2214 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
quhaijiao1125 2012-07-11
  • 打赏
  • 举报
回复
我最近也是碰到这个问题了 帮顶 希望大侠给列个TLV简单程序
弦苦 2009-05-21
  • 打赏
  • 举报
回复
1.
private:
DWORD m_dwTag; // 标签
size_t m_nLen; // m_pValue 指向的存储空间的长度
LPVOID m_pValue; // 指向存储空间的指针
public:
size_t toBuffer(LPBYTE streamBuffer, size_t bufferLen);
size_t fromBuffer(LPBYTE streamBuffer, size_t bufferLen);
2.
typedef struct TLV_tag
{
int iType;
unsigned long uLength;
union
{
int iValue;
char *szValue;
}
}
liliangbao 2009-04-30
  • 打赏
  • 举报
回复
帮顶~
SenerityChzr 2009-04-29
  • 打赏
  • 举报
回复
是通信协议中的一种编码方式

对于compound类型,其value是由其他多个TLV格式的IE组成,而其len是其他所有TLV的总长度之和(当然可能加上自己的len本身的长度)

eg:

type:145
len: 10
value: type = 1
len = 2
value = "ab"
type = 3
len = 4
value = 655
kekac 2009-04-29
  • 打赏
  • 举报
回复
感谢三楼回复,您说的这个我也明白。您写出的是具体的结构,但是具体编码怎么实现,我还没有弄清楚。能小做一个嵌套TLV的例子么?谢谢
  • 打赏
  • 举报
回复
http://blog.csdn.net/eroswang/archive/2008/01/15/2044334.aspx

mengde007 2009-04-28
  • 打赏
  • 举报
回复
不好意思,再次帮顶吧;希望同僚们能解决问题;

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧