AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TCPIdCmdServer langer Delay bei vielen Anfragen
Thema durchsuchen
Ansicht
Themen-Optionen

TCPIdCmdServer langer Delay bei vielen Anfragen

Ein Thema von sonny2007 · begonnen am 9. Nov 2016 · letzter Beitrag vom 9. Nov 2016
 
Bambini
(Gast)

n/a Beiträge
 
#2

AW: TCPIdCmdServer langer Delay bei vielen Anfragen

  Alt 9. Nov 2016, 14:37
Die Schleife des Verteilens sehe ich nicht im Code, ich vermute du machst das sequenziell.
Je größer die Anzahl der Clients, desto länger wird es dauern bis an alle nicht Daten verschickt worden sind.

Der Ansatz wäre, dieses in Threads zu erledigen. Dann können an mehrere gleichzeitig die Daten verschickt werden.
Hier muss man aber sehr auf gleichzeitigen Zugriff achten, bzw. sich voreinander schützen.

Schon alleine dein Code:
Delphi-Quellcode:
...
if AContext.Connection.Connected and (iKnownClient = -1) then
  begin
    SetLength(arClients,Length(arClients)+1);
    arClients[Length(arClients)-1].sName := '';
...
ist nicht sicher. Diese Methode wird vom TidTcpipServer aus einem Thread gerufen.
D.h. wird zeitgleich aufgerufen, wenn Clients sind zeitgleich verbinden.
Ein SetLength() und deren Length() Verwendung kann dann schief gehen!

Ab XE7 gibt es in Delphi eine Unit mit welcher man recht komfortabel parallele Schleifen bauen kann:
https://www.delphi-treff.de/tutorial...lel-library/2/

Geht aber natürlich auch mit ältere Versionen, dann dort aber zu Fuß per TThread's oder mit anderen Libraries.
  Mit Zitat antworten Zitat
 


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 13:56 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