python以字符串形式存储字节数组并通过UDP发送

时间:2013-10-29 01:54:10

标签: python string udp bytearray

我需要从命令行参数中获取特定大小的字节数组:

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'>

我希望这是在正确的轨道上!

1 个答案:

答案 0 :(得分:1)

这就是你要找的东西吗?

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