我需要从命令行参数中获取特定大小的字节数组:
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'>
我希望这是在正确的轨道上!