[英]how to send UDP data/packet using Socket programming without converting it into bytes using python?
我嘗試創建一個 UDP 套接字並成功創建了一個。 現在,當我嘗試發送一些原始數據時, socket.send
要我將其轉換為字節。 但是這個原始數據是改變我正在處理的應用程序時間的命令,所以我想按原樣發送數據。 有沒有辦法在不將其轉換為字節的情況下發送它?
這是我使用的代碼:
Socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
bufferSize = 1024
recvBuf = 4096
new_pkt= x00\x1c\x7fb\xb5\xfd\x00PV\xb8\x08\x9f\x08\x00E\x00\x000B\xad\x00\x00\x80\x11\x00\x00\n\xe7\xa0\xc6\n\xe7\x922\xc0\xb8\x05\xdc\x00\x1cH\xf4\t\x8d\x01\x00\x01\x01\x00\x10\x00\x00\x01,\x00\x00\x00\x004\xe6\xc0
S = Socket.connect_ex(("10.231.146.50",port))
Socket.settimeout(10)
Res = Socket.sendall(new_pkt)
Socket.close
在嘗試發送數據包時,獲得了將數據包轉換為字節的錯誤
Python2.7沒有錯誤,對於 send 或 sendall,如果我在你的數據字符串周圍加上雙引號
new_pkt= "x00\x1c\x7fb\xb5\xfd\x00PV\xb8\x08\x9f\x08\x00E\x00\x000B\xad\x00\x00\x80\x11\x00\x00\n\xe7\xa0\xc6\n\xe7\x922\xc0\xb8\x05\xdc\x00\x1cH\xf4\t\x8d\x01\x00\x01\x01\x00\x10\x00\x00\x01,\x00\x00\x00\x004\xe6\xc0"
試一試 ;-)
如果您使用Python3.x ,則需要字節。 所以你只需用b
前綴你的字符串:
new_pkt_for_py3 = b"x00\x1c\x7fb\xb5\xfd...."
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.