Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#8

Re: TClientSocket / TSeverSocket --- Gruppenchat

  Alt 8. Mai 2008, 10:07
Zitat von Net7:
also das läuft so, jede Connection hat eine Handlenummer die kannst du mit dem Befehl socket.Connections[socket.ActiveConnections-1].Handle ermitteln.
Somit kannst du jede aktive Verbindung über diese Nummer eindeutig identifizieren.
Wozu eine Eigenschaft zum Vergleich nehmen, wenn die Instanz über die Verbindung (genauso wie das Handle) eindeutig ist?

Sprich: Socket.Connections[] Elemente entsprechen genau den bei den Handlern übergebene Socket Instanzen. Somit also noch deutlich einfacher...

Zitat von Net7:
Sender:: TCustomWinSocket ist so freudlich und teilt dir die Handlenummer mit, die gerade offline gegangen ist. Über eine Schleife kannst du nun Ermitteln welches Handle zu welcher Verbindung paßt und diese, dann nicht mehr nutzen.
Diese Elemente werden danach von selbst aus der Socket.Connections[] Eigenschaft ausgetragen.

Und auch zusätzliche Informationen zu einer Verbindung (z.B. Benutzernamen) muss man nicht extra verwalten und dann aufwendig die Kreuzverbindung zwischen Connections[] und der eigenen Liste pflegen, sondern man kann jedem Socket in der Data Eigenschaft Daten hinterlegen. Das kann eine Instanz sein oder ein Zeiger auf einen Record. Im OnConnect anlegen, im OnDisconnect wieder freigeben und bei allem dazwischen hat man die Informationen direkt zur Verfügung, sogar gleich mit übergeben bei jedem Eventhandler, da es, wie zuvor geschrieben, die gleiche Instanz ist.
  Mit Zitat antworten Zitat