[英]Convert an int and bytearray into a ByteString Python struct Socket
我需要通过套接字向服务器发送1 int und 1 bytearray(200)。 socket.send()函数只能容纳一个字符串,因此我需要将int和bytearray作为一个字符串中的字节。 我试图用struct.pack()将它们都转换为字符串,这对于int而言很有效,但对于bytearray而言却不是。
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
print "Connected to: ", s.getpeername()
#Trying to put int and bytearray into 1 string
a= 02 # int
b= bytearray(200) #bytearray
c = struct.pack("B", a)
c += b
s.send(c)
print s.recv(1024)
将它们串联:
>>> import struct
>>> struct.pack('<l', 1234) + bytearray([0]*10)
b'\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
或者也指定字节数组:
>>> struct.pack('<l10s', 1234, bytearray([0]*10)) # In Python 3.x
# struct.pack('<l10s', 1234, bytes(bytearray([0]*10))) # In Python 2.x
b'\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.