TCP socket in Thread blockiert ALLES!?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
el3ktro
User
Beiträge: 13
Registriert: Dienstag 15. Mai 2007, 23:38

Ich schreibe nen kleinen Server, der mehrere Clients verwalten soll. Soweit klappt das auch, mehrere Clients können gleichzeitig auf den Server zugreifen. Das läuft folgendermaßen:

Das Hauptprogramm startet einen Listening-Thread. Dieser Thread öffnet einen Port und hört auf diesem. Sobald sock.accept() was empfängt, startes es einen neuen Thread, und in diesem neuen Thread werden Daten empfangen und verarbeitet.

Das Problem ist, alles hinter dem Aufruf des Listening-Threads im Hauptprogramm wird nicht ausgeführt. D.h. obwohl ich im Hauptprogramm einen neuen Thread starte, der ja den Socket veralten soll, bleibt das Hauptprogramm an dieser Stelle stehen!? Wie kann das sein? Das Hauptprogramm sollte doch weiterlaufen, dazu sind Threads doch da!! Hat jemand ne Idee? Oder ist es so gedacht das man das Hauptprogramm initialisiert und dann als letztes diesen TCP-Sever startet und dann alles weitere innerhalb dieses Threads geschieht?
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

Hast du den Thread mit <thread>.start() gestartet oder ausversehen mit <thread>.run()?

Gruss
el3ktro
User
Beiträge: 13
Registriert: Dienstag 15. Mai 2007, 23:38

Mit start(). Ich kann mir das echt nicht erklären. Soll ich mal den Code posten?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Ja, das wäre ganz hilfreich.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten