Python socket receive - входящие пакеты всегда имеют разный размер

Я использую модуль SocketServer для TCP-сервера. Я испытываю некоторые проблемы здесь сrecv() функция, потому что входящие пакеты всегда имеют разный размер, поэтому, если я укажуrecv(1024) (Я попытался с большим значением и меньшим), он зависает после 2 или 3 запросов, потому что длина пакета будет меньше (я думаю), и затем сервер застревает до истечения времени ожидания.

class Test(SocketServer.BaseRequestHandler):

def handle(self):

   print "From:", self.client_address

   while True:    

     data = self.request.recv(1024)
     if not data: break

     if data[4] == "\x20":              
       self.request.sendall("hello")
     if data[4] == "\x21":
       self.request.sendall("bye")
     else:
       print "unknow packet"
   self.request.close()
   print "Disconnected", self.client_address

launch = SocketServer.ThreadingTCPServer(('', int(sys.argv[1])),Test)

launch.allow_reuse_address= True;

launch.serve_forever()

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

Ответы на вопрос(6)

Ваш ответ на вопрос