Zitat von
Tumm:
Java-Client verbinden. Dieser hängt sich jedoch auf, erst beim brutalen Beenden des Clients scheinen die Pakete "durchzukommen",Woran kann das denn bloß liegen :/?
Hallo Tumm, ich kenne die Interne Arbeitsweise der
Indy's nicht, da ich ausschließlich mit der Socket-
API arbeite.
Aber das beschriebene Verhalten tritt dann auf, wenn folgende Bedingungen zutreffen.
Das Handshake des Servers ist unterschiedlich mit Handshake des Clients.
D.h. eine Seite Blockierend, die Andere NonBlocking.
In diesem Fall Sendet der Client (Blockierend eingestellt),
Daten an den Server, danach wartet der Client im recv (Blockierend) auf eine Rückantwort.
Kommt nun vom Server (Asynchron) kein Send, blockiert der Client im recv -> INFINITE.
Da sich ja der JAVA Client "aufhängt", vermute ich mal das oben beschriebene Szenario.
Folgende Lösungen sind möglich.
1. Server auf Blockierend umstellen.
2. Client auf Asynchron umstellen.
Bei den
Indy's ist vermutlich alles was die Komponente in Threads anbietet, blockierend.
lg. Astat