AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TServerSocket OnClientRead - Client # identifzieren
Thema durchsuchen
Ansicht
Themen-Optionen

TServerSocket OnClientRead - Client # identifzieren

Ein Thema von catwiesel · begonnen am 7. Mär 2010 · letzter Beitrag vom 8. Mär 2010
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: TServerSocket OnClientRead - Client # identifzieren

  Alt 8. Mär 2010, 21:00
Vielleicht passt Du dein Konzept einfach dem 'as-is' an.
So ein Socket kennt doch seine IP-Adresse.

Wie gesagt, 'welcher' Client dich gerade angerufen hat, sagt die Socket-Instanz aus. Ein und der selbe Client wird immer den gleichen Socket verwenden, also könntest Du eine ClientID aus 'Integer(Socket)' erstellen. Oder eben du klebst -wie in meinem Beispiel- die Clientdaten gleich an die Data-Eigenschaft. Denn dazu ist sie doch da.

Einen Index kannst Du auch so vergeben, aber wozu, versteh ich immer noch nicht:
Delphi-Quellcode:
procedure TfmMain.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Socket.Data := Integer (ErsterFreierIndexInMeinemArray);
  MeinArray[integer(Socket.Data)] := irgendwas;
end;

procedure TfmMain.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  MeinArray [Integer(Socket.Data)] := 0;
end;

procedure TfmMain.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
Var
  SocketIndex : Integer;

begin
  SocketIndex := Integer (Socket.Data);
end;
Du brauchst nicht wirklich einen Index....
Mir fällt gerade ein, du könntest einen brauchen, wenn du die Clients in einer Tabelle (TStringGrid o.ä.) darstellen willst. Dann merkst Du dir den Index einfach in deinen TUserDaten, die Du an die 'Data'-Eigenschaft gepeppt hast, so ähnlich, wie in dem 2.Beispiel.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz