AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy IdTCPClient/IdTCPServer CPU Auslastung 100%
Thema durchsuchen
Ansicht
Themen-Optionen

Indy IdTCPClient/IdTCPServer CPU Auslastung 100%

Ein Thema von AlBo55 · begonnen am 3. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
AlBo55

Registriert seit: 17. Jan 2008
Ort: Lieblingshof
30 Beiträge
 
Delphi XE7 Enterprise
 
#1

Re: Indy IdTCPClient/IdTCPServer CPU Auslastung 100%

  Alt 4. Feb 2010, 12:21
Vielen Dank für die Antwort

wie gesagt ich hab den code für die Anzeige hier ausgehöhlt
Das Original
Client
Delphi-Quellcode:
procedure BoTCPClient.Execute;
begin
  Client:=TIdTCPClient.Create(nil);
  Client.Host:=Host;
  Client.Port:=Port;
  Synchronize(GetHand);
  i:=0;
  while not terminated do
  begin
    if not(Client.Connected) then
    begin
      try
        Client.Connect;
        // Anmeldestring senden
        Synchronize(VerbA);
        Client.IOHandler.Write(Anmeld+#10);
        Synchronize(Anm);
        PostMessage(hwd,SKY_CONNECT,0,1);
        i:=0;
      except
        on E:Exception do
        begin
          Emsg:=E.Message;
          inc(i);
          Synchronize(Fehler);
          PostMessage(hwd,SKY_CONNECT,0,2);
        end;
      end;
    end;
    if Client.Connected then
    begin
      if cmd=1 then
      begin
        {Anmeldestring senden}
        Client.IOHandler.Write(Anmeld+#10);
        Synchronize(Anm);
        cmd:=0;
      end;
      if cmd=2 then
      begin
        {Bulk-Kommando senden}
        Client.IOHandler.Write('BULK'+DateTimeToStr(Date)+' 00:00:00-'+
         DateTimeToStr(Date+1)+' 23:59:59'+#10);
        Synchronize(Bu);
        cmd:=0;
      end;
      if cmd=3 then
      begin
        {beliebiges Kommando senden}
        Client.IOHandler.Write(command+#10);
        Synchronize(Bu);
        cmd:=0;
      end;
      while not Client.IOHandler.InputBufferIsEmpty do
      begin
        {es gibt noch was zu lesen}
        text:=Client.IOHandler.ReadLn;
        synchronize(UpdateMemo);
      end;
    end;
  end;
  if Client.Connected then
  begin
    // Thread terminated
    Client.Disconnect;
  end;
  Synchronize(VerbE);
  PostMessage(hwd,SKY_CONNECT,0,0);
end;
Server
Delphi-Quellcode:
procedure TForm1.TCPServerExecute(AContext: TIdContext);
var
  I: Integer;
  st:integer;
begin
  {Server Thread ausführen}
  text:=AContext.Connection.IOHandler.ReadLn;
  REdit.Lines.Add(DateTimeToStr(now)+': Nachricht: '
   +text);
  while lauf do
  begin
    case send of
     1: begin
          // Befehl senden
          AContext.Connection.IOHandler.Writeln(Edit2.Text);
          send:=0;
        end;
     2: begin
          // einzelnen Datensatz senden
          st:=-1;
          for I := 0 to sl.Count - 1 do
          begin
            if DFSuche(sl[i],'DatabaseId')=ListBox1.Items[ListBox1.ItemIndex] then
            begin
              st:=i;
              break;
            end;
          end;
          if st<>-1 then
           AContext.Connection.IOHandler.Writeln(sl[st]+#18);
          send:=0;
        end;
     3: begin
          // alle Datensätze senden
          for I := 0 to sl.Count - 1 do
          begin
            AContext.Connection.IOHandler.Writeln(sl[i]+#18);
          end;
          send:=0;
        end;
    end;
    if Copy(text,1,4)='BULKthen
    begin
      for I := 0 to sl.Count - 1 do
      begin
        AContext.Connection.IOHandler.Writeln(sl[i]+#18);
      end;
    end;
  end;
end;
die Auslastung verändert sich dabei leider überhaupt nicht


Albrecht
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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