通过TCP接收msgpack数据

时间:2018-07-10 05:22:33

标签: python tcp msgpack

我正在使用MsgPack打包数据并通过TCP发送。

我正在编写一个接收器,它将接收此数据并将其解压缩。但是我怎么知道我已经收到了完整的数据包(页眉/页脚?)。帮助我用python编写TCP接收器代码。

class Receiver(threading.Thread):
    def __init__(self):
        super(Receiver, self).__init__()
        self.socket = None

    def run(self):
        self.establish_connection()
        self.wait_for_path_packet()

    def establish_connection():
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.connect((HOST, PORT))
        self.socket.setblocking(0)

    def wait_for_path_packet():
        while True:
            try:
                data = self.socket.recv(1024)
                # Have to write some code to collect the buffer and ensure packet is received completely.
                if complete_data:
                    do_something(msgpack.unpackb(data))
             except Exception as e:
                 pass

0 个答案:

没有答案