Получение сокета более 60 Кбайт зависает на сервере - PullRequest
2 голосов
/ 01 мая 2020

Мне нужна помощь. когда я получил большие данные, такие как в основном отправка изображений и Python объектов из базы данных на сервере клиенту. Предполагается, что это 700К, но только около 60К

продолжает проходить, затем зависает. Я приложил свой код, который включает в себя заголовок и другие детали. Я новичок в python .........................

def recieve(self):
    try:
        header = self.parent.zocket.recv(10)
        if not len(header):
            return False
        length = int(header.decode('utf-8').strip())
        print("message length = ", length)
        chunks = []
        recieved = 0
        while recieved < length:
            chunk = self.parent.zocket.recv(4096)
            chunks.append(chunk)
            recieved = recieved + len(chunk)
            print(recieved)
        if chunks != []:
            # return b''.join(chunks)
            command = b''.join(chunks)
            # print(command)
            return pickle.loads(command)
    except:
        return False

def getHeader(self, data):
    header = f"{len(data):<{self.HEADER_LENGTH}}".encode('utf-8')
    return header
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...