PHP Kommunikation mit C++ - Anwendung
Habe ich die Suche von Google für eine Weile, aber das problem habe ich ich bin nicht genau sicher, was es ist, muss ich suchen. (Suche nach PHP-C++ - Kommunikation scheint nicht das zu sein was ich brauche) ich bin grundsätzlich der Entwicklung eines c++ - plugin für einen Spiel-server, und ich möchte eine web-Schnittstelle, die/pull von Daten in und aus dem C++ plugin. Das Spiel nutzt bereits ein RCON-port für remote-Administrations-Zugang, aber ich stolperte über einen header für die Netzwerk-Schnittstelle Sie verwenden, so dass ich davon ausgehen konnte ich diesen verwenden.
Mein problem ist, ich bin nicht sehr vertraut mit der Verwendung von sockets. Ich nehme an, ich werde im Grunde benötigen einen socket öffnen in C++, und lassen Sie es hören, und dann in der PHP, eine Verbindung zu diesem socket, übergeben Sie die Daten, und schließen Sie es.
Hier ist die Schnittstelle...
http://www.ampaste.net/m2f6b6dbc
Bin ich meistens einfach Los zu ziehen, Informationen wie die aktuelle Liste der angeschlossenen Spieler, Namen und erzielt. Und übergeben von Befehlen an den server neu starten, Herunterfahren, etc.
Jede Hilfe wäre toll, danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, Sparsamkeit. Geschrieben wurde es von den Ingenieuren bei Facebook, und es ist jetzt ein Apache-Projekt.
Link: http://incubator.apache.org/thrift/
Kurz gesagt es tut genau, was Sie zu tun versuchen. Es macht es einfach für verschiedene Sprachen, um miteinander zu kommunizieren. Anstatt zu versuchen, zu kommen mit ein paar socket-basiertes Protokoll für die Kommunikation, können Sie rufen eine Funktion in PHP so:
Automatisch Stecker in eine Funktion mit dem Namen getScores in C/C++ - Programm. Der einzige Nachteil ist, es kann ein bisschen wie ein Schmerz zu konfigurieren, richtig.
Ich es Wagen würde, empfehlen die Verwendung von ein paar standard-Mittel, verteilte Komponenten, Kommunikation, beispielsweise XML-RPC. Es gibt Bibliotheken für PHP und C++: http://en.wikipedia.org/wiki/XML-RPC#Implementations
Dieser Ansatz halten Sie nicht neu erfinden das Rad während der Kommunikation-Protokoll-Implementierung, und wird die weitere Wartung billiger.
ähm, ja, das ist die Beschreibung, die ich geben würde, um meine 12-jährige Tochter - aber wenn Sie gehen, um mehr als einen client, eine Verbindung, die ein bisschen mehr beteiligt. Vor allem, wenn Sie verriegeln Sie den code auf einem vorhandenen server. So haben Sie eine Lesen des socket-Programmierung-FAQ.
Müssen Sie definieren ein Protokoll, wie Daten dargestellt werden, bei Reisen über den socket. Es gibt viele " standard-Methoden - manchmal aber auch Dinge wie CORBA /SOAP etc einfach nur übertrieben und mehr Mühe, als von vorne anfangen.
Wenn Sie Verschraubungs-code ontp einem vorhandenen server, das Leben wird viel einfacher, wenn Sie die aktuellen sockel und erweitern das Protokoll, falls erforderlich.
Gibt es 3 Modelle für das schreiben von einem socket-server - das code-snippet Sie bereitgestellt werden, gehören offenbar nicht die details, von denen Sie gerade arbeiten:
- forking-server
Gibt es Variationen dieses - p2 können weitere verbindungen annehmen, p1 möglicherweise Gabel vor einer Verbindung kommen)
single-threaded
socketless server
Was es scheint, Sie wollen, google ist C++ client /server. Es gibt zwei Ansätze, ich könnte Ihnen hier.
Erste, wäre eine sehr einfache HTTP-server-Protokoll, so dass Ihr php-Skript einfach gehen kann, um http://yourip/ und senden Ihre Befehle über den POST-Variablen. Sie finden ein Beispiel für eine C++ - Web-Server unter: https://stackoverflow.com/questions/175507/c-c-web-server-library
Das zweite Konzept, das ermöglicht viel mehr Flexibilität stellen Sie sich Ihre eigene basic-Protokoll und unter Verwendung der PHP-SOCKETS mit dem server verbinden und Befehle senden. Sie finden ein Beispiel für ein C++ client /server-Anwendung auf http://www.codeproject.com/KB/IP/client_server_socket.aspx. Halten Sie im Auge, für die C++ - end, Sie sind nur besorgt über den Server-Teil. Finden Sie ein basic-PING-client in PHP, mit Hilfe von sockets unter der folgenden URL: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=8&txtCodeId=1786. Gibt es auch Klassen gibt, um sich behandeln die meisten der Protokoll-Teil, aber ich bin mir nicht bewusst, dass die Arbeit für beide Sprachen.
Bitte beachten Sie, ich habe nicht getestet die codes, die ich verlinkt. Ich fand Sie einfach bei google.
Ein guter Ort, um zu starten wäre http://php.net/manual/en/book.sockets.php.
Im Grunde, Sie gehen, um einen anderen remote-Verwaltungs-port und die Methode für PHP zu verbinden. Natürlich, wenn Sie gehen, um nur akzeptieren web-Kommunikation von einer IP, das ist ein guter Weg, um Sie zu befestigen (prüfen und den Zugriff auf nur die eine IP die Verbindung wird). Allerdings müssen Sie die C++ - server lauschen auf einem (sicheren?) port und PHP verbinden (solange der host es zulässt).
Also insgesamt, wenn du schon einen server laufen, dieser sollte einfach aus der C++ - Seite. Alles, was Sie tun müssen, um aus dem PHP-Seite ist wirklich Forschung, die Verbindung zu verschiedenen Servern und Weitergabe der Informationen an (welche PHP-ist mehr als fähig, das zu tun effizient)
Aber, dies ist offensichtlich eine alternative, um das Plakat bis 2. Ich persönlich genießen (in vielen Fällen) "das Rad neu erfinden", so zu sprechen, wie können meine eigene Arbeit. Aber natürlich, das ist nicht immer effizient, von den Kosten oder sonst.
Glück!