Moin und

im Forum!
pantarhei hat folgendes geschrieben: |
ich habe das Problem dass ich es nicht schaffe einen ClientSocket unter Delphi 5 automaisch wiederzuverbinden, wenn die Verbindung vom Server beendet wurde. |
Grundsätzlich sollte das wohl möglich sein.
pantarhei hat folgendes geschrieben: |
Sobald ich versuche Open aufzurufen, und die Verbindung in der gleichen Funktion zu benutzen funktioniert nichts. |
Das ist auch korrekt so, du bist erst dann wieder mit dem Server verbunden, wenn das Ereignis OnConnect eintritt - was aber eben erst nach Ende des aktuellen Ereignishandlers passieren kann, da die Nachricht aus der AppMessageLoop erst dann verarbeitet wird.
pantarhei hat folgendes geschrieben: |
Ich muss wirklich hingehen, über einen sep. Button nur die Verbindung herstellen um diese dann nutzen zu können. |
Was dann eben genau das ermöglicht, die aktuelle Methode wird beendet, die nächste Nachricht kann bearbeitet werden.
pantarhei hat folgendes geschrieben: |
Das sieht mir doch schwer nach einem Bug aus. |
Nein, das ist völlig korrekt.
pantarhei hat folgendes geschrieben: |
Oder habe ich da jetzt ein Verständnissproblem bei dem Ganzen? |
Ja, ich fürchte schon.

Du gehst eben nicht auf die Weise ereignisorientiert ran, wie man das unter Windows tun muss, wenn man non-blocking-Sockets verwenden möchte.
Alternativen, um das Problem zu lösen:
a) weiterhin non-blocking-socket-calls: einen Anwendungszustand definieren und entsprechend in den Ereignissen reagieren
b) umstellen auf blocking-socket-calls und mit Threads arbeiten.
Hier findest du in Kapitel 8.3 eine Erläuterung der Problematik.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.