Seite 1 von 1

TCP socket in Thread blockiert ALLES!?

Verfasst: Donnerstag 6. September 2007, 21:44
von el3ktro
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?

Verfasst: Donnerstag 6. September 2007, 22:47
von rayo
Hi

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

Gruss

Verfasst: Donnerstag 6. September 2007, 23:11
von el3ktro
Mit start(). Ich kann mir das echt nicht erklären. Soll ich mal den Code posten?

Verfasst: Freitag 7. September 2007, 08:18
von birkenfeld
Ja, das wäre ganz hilfreich.