Beratung über Aufrufkonventionen Funktion, wenn Sockets
-
27-10-2019 - |
Frage
Ich plane Sockets verwenden, um Funktionsaufrufe zwischen einer Client-32-Bit-Anwendung und einer 64-Bit-Anwendung zu machen.
Was ist der beste Plan wäre Funktionen aufrufen, übergeben Variablen und Rückgabeparameter über die Socket-Schnittstelle. Ich habe die Kontrolle über den Client und den Server-Code, damit ich alles umsetzen kann.
Ich dachte, das Socket-Paket zu haben ist, bestehend aus: - 1 Wort: Länge (Anzahl der Zeichen) des Funktionsnamens - string: die eigentliche Funktion Name - 1 Wort: Länge (in Bytes) der Funktionsparameter - Funktionsparameter
Bitte lassen Sie mich wissen, was die robusteste und erweiterbare Ansätze wäre. Vielleicht kann ich Prinzipien wiederverwenden, die von Konventionen von Compilern, Webservices oder virtuelle Maschinen aufrufen.
Vielen Dank im Voraus
Lösung
Ich schlage vor, dass Sie Protocol Buffers für die Serialisierung verwenden:
http://code.google.com/apis/ Protocol Buffers / docs / reference / CPP / index.html
Tutorial:
http://code.google.com/apis/protocolbuffers/docs/ cpptutorial.html
Wenn Sie das Objekt auf die andere Seite zu senden, beginnen mit einer Länge Präfix (32bit int), die definiert, wie viele Bytes Sie lesen sollte eine vollständige protobuf Nachricht zu erhalten.