AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

max Länge TCPIP

Ein Thema von AJ_Oldendorf · begonnen am 5. Mär 2025 · letzter Beitrag vom 11. Mär 2025
Antwort Antwort
AJ_Oldendorf

Registriert seit: 12. Jun 2009
440 Beiträge
 
Delphi 12 Athens
 
#1

AW: max Länge TCPIP

  Alt 11. Mär 2025, 08:16
Also ich habe eine Form mit TIdTCPServer und verknüpften TIdServerIOHandlerStack.

Delphi-Quellcode:
procedure TMyForm.FormCreate(Sender: TObject);
begin
  IdTCPServer1.DefaultPort := 44001;
end;

procedure TMyForm.FormDestroy(Sender: TObject);
begin
  IdTCPServer1.Active := False;
end;

procedure TMyForm.IdTCPServer1Connect(AContext: TIdContext);
begin
  if Assigned(LogSL) then
  begin
    LogSL.Add('A client connected');
  end;
end;

procedure TMyForm.IdTCPServer1Disconnect(AContext: TIdContext);
begin
  if Assigned(LogSL) then
  begin
    LogSL.Add('A client disconnected');
  end;
end;

procedure TMyForm.IdTCPServer1Exception(AContext: TIdContext;
  AException: Exception);
begin
  if Assigned(LogSL) then
  begin
    LogSL.Add('A exception happend !');
  end;
end;

procedure TMyForm.IdTCPServer1Execute(AContext: TIdContext);
var
  tmpStr : String;
begin
  if IdTCPServer1.Active then
  begin
    if not AContext.Connection.IOHandler.InputBufferIsEmpty then
    begin
      tmpStr := AContext.Connection.IOHandler.ReadLn('#~#*', 300, -1);
      LogSL.Add(tmpStr);

      Timer1.Enabled := True;
    end;
  end;
end;
Das ist im groben alles...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#2

AW: max Länge TCPIP

  Alt 11. Mär 2025, 10:48
Pack mal am Ende des OnExecute ein Sleep(1) rein oder verwende AContext.Connection.IOHandler.CheckForDataOnSource(10); , damit die Anzahl der Aufrufe reduziert wird, dann sollte das nicht mehr passieren.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
440 Beiträge
 
Delphi 12 Athens
 
#3

AW: max Länge TCPIP

  Alt 11. Mär 2025, 12:39
Der Aufruf von AContext.Connection.IOHandler.CheckForDataOnSource(10); vor dem if not AContext.Connection.IOHandler.InputBufferIsEmpty then hat geholfen bzgl der CPU Auslastung.
Du meintest ja sicherlich davor aufrufen oder?

Wie ist es beim Client?
Da habe ich das mit der CPU Auslastung bisher nicht festgestellt (der Lesevorgang mit "InputBufferIsEmpty" und "ReadLn" ist dort auch in einem Thread ausgelagert).
Sollte man dort auch TCPClient.IOHandler.CheckForDataOnSource(10); aufrufen?

Sleep(1) wird nicht gebraucht
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.961 Beiträge
 
Delphi 12 Athens
 
#4

AW: max Länge TCPIP

  Alt 11. Mär 2025, 12:46
Sehr gut, ja, ich meinte davor aufrufen. Und Sleep(1) war nur eine Alternative, die brauchst du dann nicht, nein.

Im Client brauchst du das nicht, wenn du ReadLn verwendest. Wenn nicht, eines der beiden schon, so habe ich es ja auch in meinem Codebeispiel drin (das Sleep).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
440 Beiträge
 
Delphi 12 Athens
 
#5

AW: max Länge TCPIP

  Alt 11. Mär 2025, 12:59
Ja ich verwende im Client das ReadLn. Hatte nur gefragt, da ich es ja im Server auch verwende das ReadLn.

Danke für die Unterstützung bisher
  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 03:43 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