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;