簡體   English   中英

python將字節數組存儲在字符串中並通過UDP發送

[英]python store byte arrays in string and send via UDP

我需要從命令行參數中獲取特定大小的字節數組:

rip = bytearray(4)   # IP data
rp = bytearray(2)    # Port Number
flag = bytearray(1)  # Identification Flag

每個都有不同的值,然后將它們組合成一個字符串。 該字符串需要能夠通過UDP套接字發送,我需要再次讀取它們以獲取其他進程的信息。 我只想通過以下代碼發送給他們:

    socket.sendto(datastring, '127.0.0.1', LocalPort) #data string contains all bytearray data

並從另一側獲取數據。 我會使用列表或泡菜,但都不允許這樣做(列表也不會發送)。

網上似乎有一千個關於這個問題的答案,但是沒有一個人真正地點擊我,或者通常它們看起來相關但無濟於事。 如果有人可以對此有所了解,那么我將不勝感激。

編輯:這是我被一名同事打開的一些代碼。 它使我可以將上述示例代碼中的IP數據轉換為4字節的字符串對象。 我相信我可以將其擴展為涵蓋上述7個字節的內容。

# create 4-byte array of IP
srip = IP.split('.')    #splits IP into string array
GB = struct.Struct("4B")    #produces packer for packing IP into a string
rip = GB.pack(int(srip[0]), int(srip[1]), int(srip[2]), int(srip[3]))   #creates string to send via UDP 

>>>print type(rip)
<type 'str'>

我希望這是對的!

這是你想要的?

ip_packet = "".join(chr(int(x)) for x in "255.23.0.1".split("."))
sock_client.write(ip_packet)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM