将结构打包在一起
Packing structs together
我很少有由 python 构造(headers 和消息)组成的结构。我可以将它们每个都发送到 tcp 套接字中,但无法将它们组合在一起进行发送。
#!/usr/bin/env python2.7
import socket
import sys
from construct import *
from construct.lib import *
Header = Struct(
"HdrLength" / Int16ul,
"HdrCount" / Int8ul,
)
Message = Struct(
"Smth" / Int32ul
)
hdr = Header.build(dict(HdrLength = messages.Header.sizeof() + Message.sizeof(), HdrCount = 1))
msg = Message.build(dict(Smth = 32))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 10000)
sock.bind(server_address)
sock.listen(1)
我如何将可变数量的消息打包在一起,以便稍后在套接字中以字节形式发送?
connection.send(what?)
谢谢
构建build
returns个bytes
实例。
您可以使用二元运算符 +
.
连接 bytes
个实例,就像连接字符串一样
我很少有由 python 构造(headers 和消息)组成的结构。我可以将它们每个都发送到 tcp 套接字中,但无法将它们组合在一起进行发送。
#!/usr/bin/env python2.7
import socket
import sys
from construct import *
from construct.lib import *
Header = Struct(
"HdrLength" / Int16ul,
"HdrCount" / Int8ul,
)
Message = Struct(
"Smth" / Int32ul
)
hdr = Header.build(dict(HdrLength = messages.Header.sizeof() + Message.sizeof(), HdrCount = 1))
msg = Message.build(dict(Smth = 32))
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 10000)
sock.bind(server_address)
sock.listen(1)
我如何将可变数量的消息打包在一起,以便稍后在套接字中以字节形式发送?
connection.send(what?)
谢谢
构建build
returns个bytes
实例。
您可以使用二元运算符 +
.
bytes
个实例,就像连接字符串一样