' schrieb:Was man bei TCP Verbindungen machen sollte ist eine art "Alive" Protokoll zu implementieren, sprich ddie Clienten die in der Tabelle stehen alle X Sekunden mit einem PONG einen PING bestätigen lassen. Bzw alle gesendeten Daten zu quitieren.
' schrieb:Warum denn das? Bei UDP gebe ich dir Recht. TCP-IP kriegt Verbindungsverluste sehr wohl mit.
Übrigens: NI's Modbus Server für TCP-IP hat eine Server-mehrere Clients Struktur:
http://zone.ni.com/devzone/cda/epd/p/id/4756
VDB
So ist es, das was ich jetzt noch einbauen will ist die Clients aus der Tabelle auszutragen, sobald die Verbindung aus irgendwelchen Gründen verloren geht. Noch will ich den Dispatcher als Client zu einem anderen Dispatcher zu verbinden zu können. Dazu will ich noch einen Dispatcher-Befehl einbauen "Get available topics" oder sowas, damit ich die Liste bekommen kann und sich subscriben kann. Das wird in der Zukunft zum Debuggen und Fernstreuerung des Programms verwendet. Ausserdem, wie schon gesagt andere Kommunikationsmethoden wie Queue, Notifier und User Events einbauen. Und wenn alles soweit ist, eine abstrahierte Bibliothek erstellen.
Es wird doch eine tolle Sache.
@VDB mit Modbus hatte ich bis jetzt noch nichts zu tun gehabt, aber schon viel davon gehört. Vielleicht muss ich mich mal damit auseinandersetzen.
eg
P.S. ganz vergessen, ich werde noch das TCP/IP Protokoll verbessern, 2 Sync Bytes hinzufügen, Paketlänge 2-Byte lang machen und, wahrscheinlich noch die Checksumme hintendranhängen. Problem besteht noch mit Befehlen, wenn ich diese als Enum-Typedef definiere, dann wird die PubSub Bibliothek projektabhängig sein und wenn ich die so wie jetzt vom Typ-String lasse, dann kann es mal passieren, dass die Befehle sich wiederholen, was zu komischen Effekten führen kann. Weiss jemand Rat?