krambambuli
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen!
Ich hätte mal eine allgemeine Frage zum Thema Datenübertragung:
Ich habe ein System mit einem Client-Server Modell. Eine vielzahl von Klienten (IPCs mit OPC-Server, Daten werden mit C# Programm per TCP/IP an Server gesendet) sammelt dabei im Sekundentakt Daten ein. Nachdem der Server (PC, C# Programm empfängt Daten via TCP/IP von Klienten) gestartet ist sagt er allen Klienten einmalig welche Daten er von den Klienten gerne hätte. Danach wartet der Server darauf, minütlich von jedem Klienten seine Daten zu bekommen und speichert diese dann ab. Sollte der Server irgendwann gerne andere Daten haben wollen, teilt er dies den Klienten wieder einmalig mit und wartet dann wie zuvor auf die Daten.
Meiner Meinung nach gibt es nun zwei Möglichkeiten dies zu realisieren:
1. Nachdem der Server den Klienten gesagt hat was er will, wartet er einfach nur auf eingehende Daten. D.h., jeder Klient nimmt von sich aus die Verbindung auf und sendet ihm minütlich Daten, dabei kann dies ein ziemliches Durcheinander geben, da mehrere Klienten gleichzeitig senden könnten.
2. Nachdem der Server den Klienten gesagt hat was er will, stellt er von sich aus jede Minuten eine Verbindung zu dem jeweiligen Klienten her um dann die Daten von diesem zu empfangen. Hat er die Daten verbindet er sich zum nächsten, usw.
Mein Frage ist folgende:
Welches Verfahren macht mehr Sinn? Ich bin mir da unsicher, ich habe das erste bereits mit TCP/IP realisiert und es funktioniert gut mit bisher 3 Klienten. Die Frage ist nur ob es Sinnvoll ist? Ist die andere Lösung vielleicht sicherer und besser bei steigender Anzahl von Klienten?
Ich hätte mal eine allgemeine Frage zum Thema Datenübertragung:
Ich habe ein System mit einem Client-Server Modell. Eine vielzahl von Klienten (IPCs mit OPC-Server, Daten werden mit C# Programm per TCP/IP an Server gesendet) sammelt dabei im Sekundentakt Daten ein. Nachdem der Server (PC, C# Programm empfängt Daten via TCP/IP von Klienten) gestartet ist sagt er allen Klienten einmalig welche Daten er von den Klienten gerne hätte. Danach wartet der Server darauf, minütlich von jedem Klienten seine Daten zu bekommen und speichert diese dann ab. Sollte der Server irgendwann gerne andere Daten haben wollen, teilt er dies den Klienten wieder einmalig mit und wartet dann wie zuvor auf die Daten.
Meiner Meinung nach gibt es nun zwei Möglichkeiten dies zu realisieren:
1. Nachdem der Server den Klienten gesagt hat was er will, wartet er einfach nur auf eingehende Daten. D.h., jeder Klient nimmt von sich aus die Verbindung auf und sendet ihm minütlich Daten, dabei kann dies ein ziemliches Durcheinander geben, da mehrere Klienten gleichzeitig senden könnten.
2. Nachdem der Server den Klienten gesagt hat was er will, stellt er von sich aus jede Minuten eine Verbindung zu dem jeweiligen Klienten her um dann die Daten von diesem zu empfangen. Hat er die Daten verbindet er sich zum nächsten, usw.
Mein Frage ist folgende:
Welches Verfahren macht mehr Sinn? Ich bin mir da unsicher, ich habe das erste bereits mit TCP/IP realisiert und es funktioniert gut mit bisher 3 Klienten. Die Frage ist nur ob es Sinnvoll ist? Ist die andere Lösung vielleicht sicherer und besser bei steigender Anzahl von Klienten?