你好,我想请教一下udp发送数据包的问题,是这样发送的数据是16进制的
,如“80000f29”,但数据祯是存储在txt中因此读取出来就是“80000f29”的字符串,它发送出去的ASCII值就变成“3830……”如何使发送出去还是十六进制的...
,如“80 00 0f 29”,但数据祯是存储在txt中因此读取出来就是“80000f29”的字符串,它发送出去的ASCII值就变成“38 30……”如何使发送出去还是十六进制的“80 00 0f 29”
展开
1个回答
展开全部
“80000f29”发出去"38 30..."含义是:有8个可显字符('8' '0' '0' '0'...)被发出,'8'的值本身是0x38, 把内存显示变为可显示就是"38...
要发出“80 00 0f 29, 也就是说发出的是 0x80 0x00 0x0f 0x29, 那就把这些二进制存到txt中去好了,再走之前的流程就达到预期了。注意二进制存到txt去,和之前的“80000f29”的字符串 是2码事。你可以研究一下二进制txt和字符串txt的区别即可。
要发出“80 00 0f 29, 也就是说发出的是 0x80 0x00 0x0f 0x29, 那就把这些二进制存到txt中去好了,再走之前的流程就达到预期了。注意二进制存到txt去,和之前的“80000f29”的字符串 是2码事。你可以研究一下二进制txt和字符串txt的区别即可。
追问
现在的问题就是给我的就是16进制的字符串文本,您的意思是我需要比如把“80”转成“1000 0000”存储?我用的发送语句是QString msg;udpsocket.write(msg.tolatin1,lenth,HOST,PORT)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询