[Python-de] Senden von 2 Nachrichten an einem SocketServer schlägt fehlt

Georg Brandl g.brandl-nospam at gmx.net
Di Nov 1 20:10:06 CET 2011


Am 01.11.2011 16:09, schrieb MrSmile:
> Hi Leute!
> Ich sende 2 Nachtichten an einem Socketserver.
> 
> A) Ich öffne den Socket
> B) führe 2x send nachricht aus
> C) nur von der ersten erhalte ich eine Nachricht.
> 
> Warum, und wer hat die Antwort drauf es so umzuschreiben, dass ich
> mehrere Nachrichten senden kann.

Ein "Request" ist für den SocketServer eine Verbindung.  Dein Handler
beantwortet also pro Verbindung nur eine Anfrage.

Wenn du die Verbindung länger benutzen willst, musst du eine Schleife
in deinen RequestHandler einbauen.  Du musst außerdem sicherstellen,
nachdem TCP nicht nachrichten- sondern streambasiert ist, dass deine
Nachrichten ordentlich ankommen, d.h. du musst evtl. recv() -- und auch
send() -- mehrfach aufrufen (wenn du ein zeilenbasiertes Protokoll
verwendest, siehe auch sock.makefile() und dessen readline()).

Viele Grüße,
Georg


Mehr Informationen über die Mailingliste python-de