2017-08-18 42 views
0

我有几个由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) 

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

connection.send(what?) 

感谢

+0

举一个你的问题的例子,而不是不完整的伪代码。阅读[mcve]。 –

+0

注意TCP是一种流媒体协议,因此不需要加入它们,只需发送一个。 –

+0

我想将它们作为最小数据包一起接收。也许我需要关于如何将udp联合起来的知识。 – Ambrase

回答

0

构建build返回bytes实例。

您可以使用二元运算符+精确地连接bytes实例,就像您对字符串所做的一样。

+0

这很简单 – Ambrase