Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ServerSocket1.Socket.Connections[X] - wozu? (https://www.delphipraxis.net/32529-serversocket1-socket-connections%5Bx%5D-wozu.html)

czernobill86 24. Okt 2004 19:36


ServerSocket1.Socket.Connections[X] - wozu?
 
hallo,

ich habe mit einem tutorial einen chat programmiert. hier ein auszug aus dem quelltext:

Code:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var startwert,connections,a:integer;
    text:string;
begin

startwert :=0;
connections := ServerSocket1.Socket.ActiveConnections;
text := Socket.ReceiveText;
Memo1.Lines.Add(timetostr(now) +': ' +text);
while startwert < connections do
    begin
      ServerSocket1.Socket.Connections[startwert].SendText(text);
      inc(startwert);

    end;
ich verstehe noch nicht so recht was diese zeile soll:
Code:
ServerSocket1.Socket.Connections[startwert]
nach recherchen im internet glaube ich, dass der server den empfangenen text an den client mit der nummer in [] sendet (also an startwert). am anfang wird "startwert" doch auf "0" gesetzt. also muesste der server die empfangene nachricht doch nur an den client senden, der zu erst connected hat. wenn man das "sartwert" in der klammer durch null ersetzt passiert genau dies.
wird also durch die while-schleife der wert von "startwert" geaendert? oder warum empfangen alle clients die nachrichten?
:wiejetzt:
danke

jim_raynor 24. Okt 2004 19:43

Re: ServerSocket1.Socket.Connections[X] - wozu?
 
In Connections werden alle aktiven Verbindungen zu Clients gespeichert. Durch die Schleife wird die Nachricht an alle Clients zurückgeschickt. Der Wert von Startwert wird durch inc(Startwert) um eins erhöht. Entspricht also so ziemlich einer for-Schleife.

Ultimator 24. Okt 2004 19:44

Re: ServerSocket1.Socket.Connections[X] - wozu?
 
Genau, man könnte also auch
Delphi-Quellcode:
for startwert:=0 to concections do
      ServerSocket1.Socket.Connections[startwert].SendText(text);
schreiben ;-)

czernobill86 24. Okt 2004 19:46

Re: ServerSocket1.Socket.Connections[X] - wozu?
 
ah danke!!! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05: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-2025 by Thomas Breitkreuz