Python十六進制發送用法介紹
數碼 4
本篇文章將從以下幾個方面對Python十六進制發送進行詳細闡述:
- Python中的十六進制表示
- Python發送十六進制數據
- 十六進制字符串轉化為二進制位元組流
- 二進制位元組流轉化為十六進制字符串
在Python中使用十六進制直接量,可以使用0x或者0X前綴指定一個十六進制數值。
# 十六進制數示例 a = 0x10 b = 0X1F
這裡變量a和b的值分別為16和31,其對應的十進制數值。
Python發送十六進制數據可以使用socket庫中的send()函數。send()函數可以發送二進制數據,只需將十六進制數據轉化為二進制數據,然後作為send()函數的參數進行發送。以下是一個簡單的發送十六進制數據的示例:
import socket # 創建socket對象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'www.baidu.com' port = 80 # 連接遠程主機 s.connect((host, port)) # 發送十六進制數據 s.send(b'\x48\x45\x4c\x4c\x4f') # 關閉連接 s.close()
在上述示例中,我們使用send()函數發送了十六進制數據’0x48 0x45 0x4C 0x4C 0x4F’,它對應了字符串”HELLO”的十六進制表示。
我們可以使用Python的binascii庫將十六進制字符串轉化為二進制位元組流。以下是一個簡單的示例:
import binascii hex_str = '48656c6c6f' # 將十六進制字符串轉化為二進制數據 bin_data = binascii.unhexlify(hex_str) print(bin_data) # 輸出b'Hello'
在上面的示例中,我們將十六進制字符串’48656c6c6f’轉化為二進制數據,並將其打印為字符串”Hello”。
同樣,我們可以使用Python的binascii庫將二進制位元組流轉化為十六進制字符串。以下是一個簡單的示例:
import binascii bin_data = b'Hello' # 將二進制數據轉化為十六進制字符串 hex_str = binascii.hexlify(bin_data) print(hex_str) # 輸出b'48656c6c6f'
在上面的示例中,我們將二進制數據”Hello”轉化為十六進制字符串’48656c6c6f’。
Python的binascii庫提供了二進制數據與十六進制字符串之間互相轉化的方法,可以方便地將十六進制數據發送到網絡中。