Netzwerk-Kommunikation in "großen" Programmen ...
-
Hallo Forum,
ich experimentieren nun schon ne weile mit Client-Server Kommunikation, wobei mein eigenes Programm bisher auch das tut, was es soll. Und trotzdem hab ich immer irgendwie das Gefühl, es müsste eine elegantere Lösung her, als ich sie bisher verwende. Mein Client überträgt einen Satz Daten, der immer aus einem String und 1 bis 3 variablen Teilen besteht, an den Server. Der Server wertet den String aus (switch) und ruft eine Funktion auf die den Variablen teil aus 1 bis 3 Argumenten benötigt. Die Antwort wird zurück übertragen. Nun steh ich am Anfang meines Projekts, die Anzahl der Funktionen die der Server aufruft sind noch recht überschaubar. Wenn ich aber nun an größere Programme denke, wo vielleicht mehrere 100 verschiedene Anfragen an den Server gerichtet werden würden, kann ich mir im Moment irgendwie nicht vorstellen das "switch" da noch als Lösung in Frage kommt. Hier wäre ich für Denkanstöße durchaus dankbar!
Desweiteren ist es so, das ich im Moment für jegliche Datenübertragung Verbindung aufbaue, Daten hin und her übertrage, Verbindung abbaue. Auch hier denke ich im Moment darüber nach, ob es nicht Sinnvoll wäre eine permanente Connection zu haben, solange der Client läuft um eventuell "Connect-Zeiten" zu optimieren. Im moment läuft das ganze bei mir noch im Heimnetzwerk und daher problemlos, im Einsatz steht der Server zwar auch noch bei mir, aber der Client ist 100km weg und via Internet connected. Wobei es eben zum einen sein kann, das man den Client nur mal schnell anwirft um 2 3 Daten zu ändern, die übertragen werden müssen, zum anderen aber auch mal 2h vor dem Client zubringt etwas zu planen, ohne das Daten ausgetauscht werden.
Ich hoffe auch hier könnt ihr mich auf den richtige Pfad führen !Der Nala
-
Ist aehnlich wie in GUI-Systemen, somit Eventlistener etc. ... Du ueberlegst dir, was switch eigentlich ist und abstrahierts. Also Listener fuer die entsprechenden Cases als Klasse. Die Objekte registrieren sich, etc. ...
-
Ich mache es per Http.
Daten werden per POST geschickt.
Antwort kommt als String der per operator<< wieder in Objekte gestreamt werden kann.
Man könnte das natürlich noch künstliche aufblähen (das ist das, was die "Grossen" machen) indem man das Ganze in XML verpackt, aber das mache ich nur für APIs die von Fremd-Programmen genutzt werden.
-
@knivil Kennst du dazu eventuell ein gut Dokumentiertes Beispiel wo man sich das ein oder andere abschauen kann ?