通过TCP调试助手传输数据时的注意事项
一、底層規則
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!)
總結
以上是生活随笔為你收集整理的通过TCP调试助手传输数据时的注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++位域结构深入解析
- 下一篇: 32位十六进制浮点数转换为十进制浮点数的