繁体   English   中英

将int和bytearray转换为ByteString Python结构套接字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM