Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Server/Client kleine Pakete sehr oft an mehrere Clienten

  Alt 5. Jan 2017, 03:59
Jeder Client sendet alle 100-200ms ein Buffer oder Stream von ca 0,2-0,6KByte.

Diese sollen dann vom Server an alle anderen Clienten verteilt werden.

Welcher Lösungsansatz ist der Richtige?
ist TCP die richtige Wahl ?
Also... UDP Ist ein bisschen schlanker, dafür ist nicht sichergestellt ob und in welcher Reihenfolge die Pakete ankommen.

TCP/IP ist schon ok... ein Frame ist aber ca 1500 bytes lang inkl. 20 Byte Headerdaten. Und noch das ein oder andere Byte... also Deine 200 oder 600 byte sind kein Thema.

Ein Server spaltet normalerweise für jeden Client einen eigenen Thread ab. Wenn Du die Daten verteilst, Musst Du dem Buffer also so lange im Speicher halten, bis "TimeOut" oder alles Clients Ihn empfangen haben. So sparst Du Dir ne Kopie für jeden Client. (RefCounted Queued- oder Ring-Buffer).

Von diesen Paketen solltest Du im lokalen Netz "physikalisch" ca. 65.000 Stk. pro Sekunde verteilen können.
Bei einer Client Anzahl unter 1000 sollte es also klein Problem sein...
Wo bei Du sicherlich nicht 1000 Threads aufmachen willst...

aber bei 5-10x pro Sekunde 500 Bytes zu übertragen... an sagen wir mal 10 Clients... kein Thema...

Oder habe ich mich verrechnet? Ist schon spät...

Mavarik
  Mit Zitat antworten Zitat