包装结构在一起

时间:2017-08-18 13:32:19

标签: python sockets construct

我有很少的结构由python构造(标题和消息)组成。我可以将它们中的每一个发送到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)

如何将可变数量的消息打包在一起以便以后在socket中作为字节发送?

    connection.send(what?)

由于

1 个答案:

答案 0 :(得分:1)

构造build会返回bytes个实例。

您可以使用二元运算符bytes完全像对字符串一样连接+个实例。