消息类型确认

short msg_id = 0x0001; // 登录消息类型
short msg_len = 14; // 整个登录消息的总长度,包括头部和内容

char username[] = "user";
char password[] = "123456";

// 构造 TLV 消息
char tlv_message[14]; // 2 字节的消息类型 + 2 字节的消息长度 + 10 字节的消息内容

// Type
memcpy(tlv_message, &msg_id, sizeof(short));

// Length
memcpy(tlv_message + sizeof(short), &msg_len, sizeof(short));

// Value
memcpy(tlv_message + 2 * sizeof(short), username, 4);
memcpy(tlv_message + 2 * sizeof(short) + 4, password, 6);

最终效果:

tlv_message 数组的内存布局将会是:

  1. 消息类型(Type):

    • tlv_message[0] 和 tlv_message[1] 将分别是 0x00 和 0x01,因为 msg_id 是 0x0001
  2. 消息长度(Length):

    • tlv_message[2] 和 tlv_message[3] 将分别是 0x00 和 0x0E,因为 msg_len 是 14 (即十六进制 0x0E)。
  3. 消息内容(Value):

    • tlv_message[4] 到 tlv_message[7] 将是字符串 "user" 的 ASCII 值:u (117), s (115), e (101), r (114)。
    • tlv_message[8] 到 tlv_message[13] 将是字符串 "123456" 的 ASCII 值:1 (49), 2 (50), 3 (51), 4 (52), 5 (53), 6 (54)。

最终的 tlv_message 数组内容如下:

{
    0x00, 0x01, // 消息类型
    0x00, 0x0E, // 消息长度
    'u', 's', 'e', 'r', // 用户名
    '1', '2', '3', '4', '5', '6' // 密码
}

这意味着 tlv_message 现在包含了一个完整的 TLV 格式消息,可以被发送给服务端进行处理。服务端接收到这个消息后,会根据 TLV 格式解析出消息的类型、长度,并从消息内容中提取出用户名和密码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值