Надежный прием данных в python-сокете с помощью цикла - PullRequest
0 голосов
/ 02 октября 2019

Моя функция reliable_receive () не зацикливается на моем коде, как я ожидал, чтобы надежно получать данные с моего сервера, я включил операторы печати, чтобы я мог видеть поток кода, и текущий вывод - «шаг 1,шаг 2, шаг 3, шаг 5, шаг 2 ". Так что мой код перебирает функцию, но ничего не делает, когда возвращается, чтобы получить больше данных, не выдает никаких ошибок и не активирует условное «если нет», как я ожидал. Любая помощь будет оценена.

def reliable_receive():
   global client_socket
   fragments = []
   print("step 1")
   while True:
       try:
           print("step 2")
           received_data = client_socket.recv(2048)
           print("step 3")
           if not received_data:
               print("step 4")
               break
           fragments.append(received_data)
           print("step 5")
       except Exception as generic_error:
           print("step 6")
           print(generic_error)

   packed_data = b"".join(fragments)
   print("step 7")
   unpacked_data = unpack(packed_data)
   print("step 8")
   return unpacked_data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...