![]() |
3 Clients senden Daten. Reihenfolge beim Server...
servus,
habe einen Server und 3 Clients. (Sockets) Die 3 Clients C1,C2 und C3 senden Daten zum Server. Jetzt sind die Daten größer und werden von den Sockets/Betriebsystem (?) aufgeteilt. Wie kommen diese Daten an? Angenommen die Pakete werden in zwei Teile aufgeteilt. Kann es sein das beim Server dann die Daten durcheinander ankommen, also Server <- C1.1 <- C2.1 <- C2.2 <- C3.1 <- C1.2 So müste ich ja noch schauen welches Paket zu welchen Client gehört. Oder kommen erst die Daten von C1.1 C1.2 an dann die daten von C2.1 C2.2 etc... aber komplett.... Mfg |
Re: 3 Clients senden Daten. Reihenfolge beim Server...
Ich kann dir jetzt keine Genaue Auskunft geben,
aber dein gennantes Szenario kann schon sein, wenn einer der Clients zB ein langsameres Internet/ Computer hat. Ich empfehle dir sowieso immer bei jedem Packet die ClientID mitzusenden also zB #254 + ClientID + #254 |
Re: 3 Clients senden Daten. Reihenfolge beim Server...
Also der Server hat selbst ja dann auch 3 Sockets, für jeden Client eine eigene Socket. Und jede Socket auf dem Server empfängt nur die Daten seines Clients. Dein Server muss dann natürlich mit Threads arbeiten.
Client Socket CS1 bis CS3 und der Server hat Server Socket SS1 bis SS3 und SS1 empfängt die Pakete von CS1 in der Reihenfolge wie sie CS1 sendet. und mit anderen Sockets analog. Da musst du am Server nix mehr umsortieren oder so. Ich geh mal von aus das es eine TCP Verbindung ist. Diese sind Verbindungsorientiert. Bei UDP (Verbindungslos) kommen die Pakete natürlich wahllos an und du musst selber sortieren welcher Client was geschickt hat. (Ich hoffe die reicht diese knappe Erkläuterung) |
Re: 3 Clients senden Daten. Reihenfolge beim Server...
Zitat:
Zitat:
Der Thread arbeitet diese dann ab. Aber ich brauche doch nicht für jeden Client einen Thread oder? |
Re: 3 Clients senden Daten. Reihenfolge beim Server...
Generell brauchst du pro Client der sich verbindet einen Thread. Ich weiß jetzt nicht mit welcher Komponente du arbeitest, da kann es ggf. anders sein. z.B. dass es einen Thread gibt mit einem Event dem auch die Socket übergeben wird von der die Daten kommen. Dann brauchst du auch keine Threads machen. Ohne zu wissen womit du arbeitest kann ich nix zu sagen.
|
Re: 3 Clients senden Daten. Reihenfolge beim Server...
Arbeite mit den Sockets, TServerSocket und TClientSocket.
Da gibt es ja OnSocketClientRead dort kommen die daten und der Socket an. Diese Daten mit Socket speicher ich in EINER jobliste. Brauche also keine pro Client wenn ich das richtig verstehe. |
Re: 3 Clients senden Daten. Reihenfolge beim Server...
richtig, in dem Fall brauchst du keinen extra Thread pro Client.
|
Re: 3 Clients senden Daten. Reihenfolge beim Server...
wunderbar....
thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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