AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TIdTCPServer & TIdTCPClient - Verschiedene Fragen
Thema durchsuchen
Ansicht
Themen-Optionen

TIdTCPServer & TIdTCPClient - Verschiedene Fragen

Ein Thema von RWarnecke · begonnen am 20. Aug 2010 · letzter Beitrag vom 18. Nov 2021
 
samso

Registriert seit: 29. Mär 2009
440 Beiträge
 
#3

AW: TIdTCPServer & TIdTCPClient - Verschiedene Fragen

  Alt 23. Aug 2010, 07:41
Beim TIdTCPServer wird für jeden Client ein Thread eröffnet.

>Wie hoch ist die maximale Clientzahl, die ich an einen TIdTCPServer connecten kann ?
Die Threadanzahl wird durch den Speicher begrenzt. Da pro Thread mind 1MB Speicher angefordert wird, ist also spätestens bei 2048 Clients Schluss. Ich habe nicht untersucht, ob durch Änderung von Parametern die Größe des angeforderten Speichers geändert werden kann. Windows begrenzt die maximal Anzahl der TCP-Verbindungen ebenfalls. Allerdings habe ich bisher keine belastbaren Zahlen darüber gefunden, wie groß diese Zahl denn nun ist. Viele Dokumente stammen aus NT-Zeiten, diverse Parameter haben augenscheinlich heute keinen Relevanz mehr usw. Nach meinen persönlichen Erfahrungen scheint diese Zahl bei einer normalen Arbeitsstation (also nicht Server) auch bei ca. 2000 Verbindungen zu liegen. Dazu kommt dann noch, dass eine freigegebene Verbindung nicht sofort wieder belegt werden kann. Wenn sich also 2000 Clients verbinden, sofort wieder trennen und sich dann die nächsten 2000 Clients verbinden wollen, dann wird das nicht funktionieren, weil die 2000 alten Verbindungen erst nach 3 Minuten wirklich freigegeben werden (dazu gibt es irgendwo eine readme von Borland zum Interbase-Server)

>Wie läuft die Verarbeitung ab, kann ich mir das so Vorstellen wie in einem Spooler ?
Die angeschlossenen Clients werden quasiparallel abgearbeitet. Die Zeichenketten für jede einzelne Verbindung sind aber streng seriell.

>Wenn ich mit einem TIdTCPClient per Writeln mehrere Zeichenketten übertrage an den Server, werden alle nacheinander abgearbeitet oder kann mir dann ein zweiter Client dazwischen funken ?
Der Server zerlegt die ankommenden Zeichenketten, indem er nach dem Zeilenende sucht. Für Dich sieht es also so aus, als ob die Zeilen einzeln ankommen würden. Die Zeichenketten unterschiedlicher Clients können sich nicht mischen. (Tip: Falls die kleine Verzögerung bei der Übertragung einzelner kurzer Kommandos störend ist: s.a. Stichwort "UseNagle" bzw. "TCP_NoDelay")
  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 18: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