Einzelnen Beitrag anzeigen

Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#2

Re: Indy TCP Server OnAccept?

  Alt 27. Dez 2009, 23:45
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
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat