---------------------------------------------
-- 时间:2019-01-09
-- 创建人:Ruo_Xiao
-- 邮箱:xclsoftware@163.com
---------------------------------------------
一、底层规则
1、规则:
通信助手发送的数据就是将数据在内存中存储的数据(二进制),例如:发送0x86,则发送的数据为1000 0110。
2、两种模式
调试助手为了方便使用者,故在接收数据和发送数据时,给予两种模式进行选择:字符串模式和十六进制模式。
3、TCP传输大小端问题
由于不同系统在存储多字节数据时存在大小端问题,所以TCP/IP统一了传输时的大小端问题,所以采用网络字节顺序,即:大端模式。所以在传输时,自动将低字节数据赋值给传输位置的高地址,内存中高字节数据赋值给传输位置的低地址。
二、字符串模式
1、说明
调试助手会将待发送的每个字符转换成其ASCII码值,再将该值转换成二进制,最后根据双方系统大小端问题来转换发送的数据的顺序。
2、栗子
(1)通信双方均是小端模式。
(2)发送方发送字符串“10”,调试助手会将“10”分解成49和48,再将二者转换成二进制0011 0001和0011 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!)