Thrift Client-Server mehrere Rollen

Das ist meine erste Frage, also leid, wenn die Form falsch ist!

Ich versuche, Sparsamkeit Server (Python) und Client (c ++) zu machen. Allerdings muss ich Nachrichten in beide Richtungen austauschen. Der Client sollte sich registrieren (die Funktion des Servers aufrufen und warten), und der Server sollte auf demselben Port für N (N-> 100k) eingehende Verbindungen (Clients) hören. Nachdem einige Bedingungen erfüllt sind, muss der Server die Funktionen auf jedem Client aufrufen und Ergebnisse sammeln und interpretieren.

Ich bin wenig verwirrt, und erste Fragen ist "kann dies in Thrift getan werden"? Zweite Frage bezieht sich auf Mechanismus, der mir eine bidirektionale Kommunikation ermöglicht. Ich vermute, dass ich zwei Dienste brauchen werde. Einer mit Client-Funktionen andere mit Server's. Aber ich bin verwirrt mit Anrufcode. Ich verstehe Einweg-Kommunikation (Aufruf von Funktionen vom Server), aber mit Anruffunktionen von der Client-Seite habe ich ein Problem.

Irgendwelche Vorschläge???

Vielen Dank!

2 Solutions collect form web for “Thrift Client-Server mehrere Rollen”

Betrachten Sie mit boost :: asio für Ihre Client-Seite, obwohl abhängig von Ihrem Niveau von C ++, kann der Code zu dicht erscheinen.

Wenn Sie nach einem einfachen Beispiel suchen, schauen Sie bitte: http://www.linuxhowtos.org/C_C++/socket.htm

Es enthält sowohl serverseitige als auch clientseitige Code. Beide Seiten schaffen eine Steckdose und eine Zwei-Wege-Kommunikation wird von jeder Seite, die Daten an die Steckdose sendet, erreicht. Die Serverseite ist in der Regel multi-threaded (mit einem Thread pro Verbindung). Die Client-Seite kann als Single-Thread-Loop implementiert werden, die zwischen dem Abfragen des Sockets für eingehende Informationen, dem Durchführen von Berechnungen und dem Veröffentlichen von Ergebnissen zurück zum Socket wechselt.

Da hast du gesagt, du hast Probleme mit dem Aufruf von Funktionen von der Client-Seite, hier ist ein Beispiel Thrift-Code mit Java-Server und C ++ Client, wo der Client eine Funktion im Server aufruft. http://fundoonick.blogspot.com/2010/06/sample-thrift-program-for-server-in.html

Hoffe das hilft 🙂

Python ist die beste Programmiersprache der Welt.