我需要通过套接字向服务器发送1 int和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)
答案 0 :(得分:0)
连接它们:
>>> import struct
>>> struct.pack('<l', 1234) + bytearray([0]*10)
b'\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
或者也指定bytearray:
>>> 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'