![]() |
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; |
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:
im Client muß dann ein timer sein der regelmäßig nachschaut ob eine
Acontext.Connection.IOHandler.WriteLn('sadfsd');
Nachricht vom Server vorhanden ist genauer siehe ![]() ansonsten wenn Du die nachricht an einen bestimmten client schicken willst müsste es in etwa so aussehen
Delphi-Quellcode:
tschö
// i= Clientnr
TIdContext(List.Items[i]).Connection.iohandler.WriteLn('sadfsd'); 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