Einzelnen Beitrag anzeigen

Sharky2005

Registriert seit: 15. Nov 2005
2 Beiträge
 
#1

Mit IdTCPServer(Indy10) Daten an anderen Client weiterleiten

  Alt 7. Jan 2006, 21:14
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;
  Mit Zitat antworten Zitat