我正在使用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