Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Prism Mit IdTCPServer(Indy10) Daten an anderen Client weiterleiten (https://www.delphipraxis.net/60499-mit-idtcpserver-indy10-daten-anderen-client-weiterleiten.html)

Sharky2005 7. Jan 2006 20:14


Mit IdTCPServer(Indy10) Daten an anderen Client weiterleiten
 
Hallo zusammen,
ich teste gerade die IdTCPServer Komponente (Indy10)!
Habe mir also Beispiele gesucht, wie man diese Komponente nutzt und
auch ein paar gefunden. Die normale Server <-> Clientanwendung funktioniert
so wie sie soll. Jetzt aber habe ich versucht mit dem Server eine
Nachricht direkt an die Client zu versenden (um die empfangenen Daten
direkt an die anderen Clients weiter zu leiten). Wieder nach Beispielen
gesucht und auch gefunden, aber ich konnte folgende Zeile nicht benutzten

TIdContext(List[i]).IOHander.WriteLn('sadfsd');

Ich habe auch noch alles mögliche versucht, dennoch ohne Erfolg.
Bitte sagt mir wie ich es schaffe das der Server die Daten an einen anderen Client weiter
leitet?





Delphi-Quellcode:
procedure TForm1.IdTCPServerExecute(AContext: TIdContext);
var
  connected: boolean;
  line: string;
  connectionNumber: integer;
  List : TList;
  i : Integer;
begin
  connectionNumber:= 0;
  while (ledConnected[connectionNumber].Brush.Color = clOn) do inc(connectionNumber);
  ledConnected[connectionNumber].Brush.Color:= clOn;
  AContext.Connection.IOHandler.WriteLn('Hello');

  List := IdTcpServer.Contexts.LockList;
   for i := 0 to List.Count -1 do
     //TIdContext(List[i]).IOHander.WriteLn('sadfsd');
  IdTcpServer.Contexts.UnlockList;

  connected:= true;
  while connected do begin
    try
      line:= AContext.Connection.IOHandler.ReadLn;
      AContext.Connection.IOHandler.WriteLn('>>'+line);
      memo1.Lines.add(format('[%d] %s',[connectionNumber,line]));
      if (ansiUpperCase(line) = 'EXIT') then begin
        AContext.Connection.Disconnect;
        connected:= false;
      end;
    except
      connected:= false;
    end;
  end;
  ledConnected[connectionNumber].Brush.Color:= clOff;   { show that we've disconnected [!] }
end;

th_bone 13. Jan 2006 10:57

Re: Mit IdTCPServer(Indy10) Daten an anderen Client weiterle
 
Hi,

also wenn es als direkte Antwort gedacht ist müsste es so funktionieren:

Delphi-Quellcode:
 Acontext.Connection.IOHandler.WriteLn('sadfsd');
im Client muß dann ein timer sein der regelmäßig nachschaut ob eine
Nachricht vom Server vorhanden ist

genauer siehe Foum eintrag

ansonsten wenn Du die nachricht an einen bestimmten client schicken willst
müsste es in etwa so aussehen

Delphi-Quellcode:
// i= Clientnr
TIdContext(List.Items[i]).Connection.iohandler.WriteLn('sadfsd');
tschö

Ralf


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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