Frage

Ich habe ein Nachrichtenobjekt als binären Datenstrom serialisiert (es kann ein beliebiger std :: streambuf sein) und möchte es auf einen anderen Prozess übertragen. Der Schlüssel ist, dass die Serveranwendung viele Clients verarbeiten muss, die Verbindung asynchron (aufgrund mehrerer Clients) und bidirektional (unter der Haube kann sie durch zwei getrennte Verbindungen implementiert werden muss) sein muss. Nachrichten haben eine variable Länge und sollten in die Warteschlange gestellt werden. Welche IPC-Methode sollte ich dafür wählen? Gibt es eine einfache Möglichkeit, Stream-Puffer durch Anwendungen zu übertragen? Geschwindigkeit ist nicht kritisch, aber es ist gut, die Anwendung nicht zu lange zu blockieren. Alles wird lokal unter Windows erledigt (ich strebe XP und neuere an), keine Netzwerkunterstützung erforderlich.

Ich brauche auch die Möglichkeit, eingehende Verbindungen abzuhören. Der Server sollte automatisch neue Verbindungen erkennen, einen Handshake durchführen und akzeptieren, ob er kompatibel ist. Mir ist bewusst, dass ich viele Dinge, die ich erwähnt habe, selbst schreiben muss. Auf jeden Fall muss es möglich sein, dies zu erreichen, aber natürlich ist einfacher besser.

War es hilfreich?

Lösung

Sie können Named Pipes in Fenstern verwenden. Siehe MSDN-Referenz: http://msdn.microsoft.com / de-de / library / aa365150% 28v= vs.85% 29.aspx

Sie können auch Vollduplex (bidirektional) und asynchron einstellen.Wenn Sie mit Datei-E / A-APIs unter Windows vertraut sind, sollte die Verwendung unkompliziert sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top