Gniazdo Python odbiera - pakiety przychodzące zawsze mają inny rozmiar

Używam modułu SocketServer dla serwera TCP. Mam tu pewne problemy zrecv() funkcja, ponieważ przychodzące pakiety zawsze mają inny rozmiar, więc jeśli określęrecv(1024) (Próbowałem z większą wartością i mniejszą), utknie po 2 lub 3 żądaniach, ponieważ długość pakietu będzie mniejsza (tak myślę), a następnie serwer utknie do czasu oczekiwania.

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()

Jeśli klient wyśle ​​wielokrotne żądania przez ten sam port źródłowy, ale serwer utknie, każda pomoc byłaby bardzo doceniana, dziękuję!

questionAnswers(6)

yourAnswerToTheQuestion