[Python-de] Kann man gleichzeitig in ein socket schreiben und davon lesen?

Stefan J. Betz stefan_betz at gmx.net
Fre Jul 11 22:13:40 EDT 2003


Am Fri, Jul 11, 2003 at 06:24:51PM +0200, Gerhard Häring schrieb:
> Stefan J. Betz wrote:
> >Hallo Liste,
> >
> >ich bin relativ neu was die Socketprogrammierung angeht, deswegen eine
> >kleine Frage hierzu:
> >
> >Ich möchte einen Multithreadet Server Programmieren, und nun möchte ich
> >wissen was passiert wenn ein Thread darauf ließt, und der andere da rein
> >schreiben tut... gleichzeitig! [...]
> 
> Was hast du denn da für ein tolles Protokoll erfunden, das so was nötig 
> macht?
> 
> 

Naja, ich verwende diesen TCPServer aus der SocketServer Modulsammlung,
mit dem Threaded Mixin, und da wird dann Quasi immer ein Thread für
jeden neuen User (bzw. Socket) gestartet, und in diesem Thread welche ja
eigentlich ein  Klasse ist die den RequestHandler implementiern tut,
möchte ich Quasi noch mal zwei zusätzliche Thread's haben... Der eine
von diesen Zusatzthreads soll immer nur ein Zeichen aus dem
Socketauslesen, diese Zeichen kommt in einen String, und dann wird ein
requlärer ausdruch re.* darauf angewendet, mit dem ich verscuhe quasi
mein Protokoll zu "erfassen"... wenn als der reualäre ausdruck auf den
string zutreffen tut, dann soll dieser string einer queue (eigentlich ne
liste, aber egal) hinzugefügt werden, und er hauptthread dieser klasse
(zur laufzeit einer instanz) ließt diese liste aus und gibt status und
so weiter über das socket zurück... und dann könnte es sein das 2 thread
gleichzeitig auf diese socket zugreiffen, und nun bleid halt die frage
wie diese socket darauf reagieren tut...

Aber da fällt mir grad ein das ich es nicht zeichen für zeichen in
diesen string schreiben lasse, sonder eher mit socket.revc(1024) oder
so... aber die funktion bleibt die selbe...

mfg Betz Stefan
PS: Ich weis das man meinen Text nur schlecht verstehen kann, mir ist
jedoch keine bessere Erklärung eingefallen...

-- 
Profitip No. 413:
Zeit sparen durch Rebooten im Hintergrund.
Man will ja nicht jedesmal die Arbeit unterbrechen...
stefan at athlon.hornynet:~$ reboot &
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde geschreddert...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 248 bytes
Beschreibung: nicht verfügbar
URL         : http://starship.python.net/pipermail/python-de/attachments/20030711/c1a22ee0/attachment.bin