通过TCP调试助手传输数据时的注意事项

---------------------------------------------
-- 时间:2019-01-09
-- 创建人:Ruo_Xiao
-- 邮箱:xclsoftware@163.com
---------------------------------------------

一、底层规则

1、规则:

        通信助手发送的数据就是将数据在内存中存储的数据(二进制),例如:发送0x86,则发送的数据为1000 0110

2、两种模式

        调试助手为了方便使用者,故在接收数据和发送数据时,给予两种模式进行选择:字符串模式十六进制模式

3、TCP传输大小端问题

        由于不同系统在存储多字节数据时存在大小端问题,所以TCP/IP统一了传输时的大小端问题,所以采用网络字节顺序,即:大端模式。所以在传输时,自动将低字节数据赋值给传输位置的高地址,内存中高字节数据赋值给传输位置的低地址。

二、字符串模式

1、说明

        调试助手会将待发送的每个字符转换成其ASCII码值,再将该值转换成二进制,最后根据双方系统大小端问题来转换发送的数据的顺序。

2、栗子

        (1)通信双方均是小端模式。

        (2)发送方发送字符串“10”,调试助手会将“10”分解成4948,再将二者转换成二进制0011 00010011 0000

        (3)由于发送方是数据在内存中存放方式是小段模式,故“10”在内存中以0011 0001 0011 0000表达。

        (4)由于TCP传输的数据默认是大端模式,所以传输到接收方时,该数据在内存中的表达是0011 0000 0011 0001

        (5)若接收方也是小端模式,则按照小端模式读取,即:低字节数据放到低地址,高地址数据放到高地址,则读到的数据为12337

三、十六进制模式

1、说明

        调试助手会将待发送的每个十六进制数转换成二进制,最后根据双方系统大小端问题来转换发送的数据的顺序。

2、栗子

        (1)通信双方均是小端模式。

        (2)发送方发送十六进制83E1,调试助手会将其分解成二进制。

        (3)由于发送方是数据在内存中存放方式是小段模式,故该十六进制在内存中的表达是83E1

        (4)由于TCP传输的数据默认是大端模式,所以传输到接收方时,该数据在内存中的表达是E183

        (5)若接收方也是小端模式,则读到的数据为E183

 

(SAW:Game Over!)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值