Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.774 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: TIdTCPServer : An Gruppe verbundener Clients senden

  Alt 25. Sep 2009, 16:23
Hallo Dominik,

Delphi-Quellcode:
  procedure TTcpClientThread.Execute;
  var
    s : AnsiString;
  begin
    while (not terminated) do
      begin
        try
          // 1.
          while not tcpClientTr.Connected do
            begin
              try
                tcpClientTr.Connect;
              except
                on E:Exception do
                  begin
                    MainFormClient.IncomingMessages.Lines.Add('Error '+E.Message);
                    sleep(5000);
                  end;
              end;
            end;
          // 2.

          if not tcpClientTr.IOHandler.InputBufferIsEmpty then
            begin
              s:= tcpClientTr.IOHandler.InputBufferAsString;
              MainFormClient.IncomingMessages.Lines.Add('Received : ' + S);
              s:='';
            end
          else
            begin
              sleep(100);
            end;

        except
          on E:Exception do
            begin
              MainFormClient.IncomingMessages.Lines.Add('Error '+E.Message);
              tcpClientTr.IOHandler.CloseGracefully;
            end;
        end;
      end;
// tcpClientTr.Disconnect;
  end;
sodele mit dem obigen code funktioniert es.
Frage mich nicht warum.
Wenn die Stellen zwischen 1. und 2. auskommentiert werden
funktioniert es nicht mehr.
Keine Ahnung warum.

.. und noch etwas dazugelernt.
Delphi-Quellcode:
var
  i : Byte;
begin
  for i:= 0 to tcpServer.Contexts.LockList.Count -1 do
    tidContext(tcpServer.Contexts.LockList.Items[i]).Connection.IOHandler.Write('Hallo');
  tcpServer.Contexts.unLockList; // Danke an Apollonius
end;
Für das Auflisten der Clientverbindungen braucht man keine seperate Liste,
der TCPServer bringt eine mit.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat