在我们的应用中一般的方式(java、C)都是对于一个协议来说都一般都有一部分固定的协议字段,首先,根据固定的协议长度将固定的协议字段读取完。然后,再根据TLV的定义来读取TLV字段,我们一般的定义T(TAG)为2个字节short,L(Length)为2个字节short,那么你只需要根据前面读固定字段一样,先读取两个字节即读到T,再读取两个字节即读到了L,这时就要注意,根据读到的L的值再读取V(一般就是内容),如:读取L的最终结果为50个字节这么长那么读V的时候就直接读取50个字节,如果下面还有TLV字段那么就按前面的方式继续读取。当然,可以使用while的方式读取,对于多个。
还有就是要注意约定,如果TLV中V没有内容那么TL也最好要有值,这样保证读取的数据不会超过实际的字节数,这里说的只是我们应用中对于TLV的处理,只是提供一个思路希望有帮助!