Thema: Delphi Indy TCPServer -> Client

Einzelnen Beitrag anzeigen

Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#11

Re: Indy TCPServer -> Client

  Alt 9. Jun 2005, 09:12
Also Indy TCP ist auch nicht gerade meines .

1. beim connecten speicherst du dir then thread in eine liste und damit kannst du wieder auf die verbindung zugreifen ( die methode ist eigentlich schlecht, weil der thread beim disconnecten zerstört wird und es leicht zu fehlern kommen kann - auch bei socket errors könnte es hier zu problemen kommen).

2. normalerweise haben diese threads .data eigenschaften wo eben userdaten gespeichert werden.
Das ist thread sicher - heißt wenn der thread (connection) beendet wird, sind auch die daten weg - und es kommt nicht so leicht zu ner access violation .... Damit kannst aber leicht erkennen welcher user hinter dem Thread (connection) steht.

Indy ist da soweit ich mich erinnere nicht ganz so komfortabel wie tserversocket also mußt du dir die funktionen glaub ich selbst basteln ( ich hab auf die schnelle keine funktion gefunden die dir alle threads auflisten würde ).

Das bedeutet du mußt bei indy vermutlich wirklich eine liste aller aktiven threads führen - doof eigentlich.
Und jedesmal wenn ein connect kommt einen neuen eintrag auf der liste machen - wenn ein disconnect kommt den eintrag löschen (und am bessten die liste zusammenschieben).
Und auf jeden fall alles in try except blöcke weil sonst stürtzt dir das ding nur noch ab .
In der onError solltest du ebenfalls schauen, daß du fehlerhafte sockets zu bekommst und auch die liste aktuell hältst.

Arnulf
  Mit Zitat antworten Zitat