mmofacts.com

Php <-> c++

gepostet vor 17 Jahre von Tarion
Ich denke immer wieder über die Idee nach, für ein Browsergame eine andere Sprache zu nehmen.
Wie bekommt man da gute Schnittstellen für die Usereingaben? Kennt sich da jemand aus.
Gibt es Möglichkeiten per PHP die Daten an ein c++ Programm weiter zu leiten, oder eher: welche sind zu empfehlen?
Oder was gibt es für Möglichkeiten direkt an den HTTP input (auf Serverseite) per c++ zu gelangen.
gepostet vor 17 Jahre von Todi42
Original von Quick_silver
Oder was gibt es für Möglichkeiten direkt an den HTTP input (auf Serverseite) per c++ zu gelangen.

- cgi
- fast cgi
- oder eben den Server, der den http-request parst gleich selbst schreiben
gepostet vor 17 Jahre von TheUndeadable
HttpListener <- Auch mit Managed C++ möglich, falls dies technisch für dich möglich ist.
Ansonsten gibt es einige fertige OpenSource-Http-Server (unterschiedlichster Qualität) oder du nutzt wie der obige Beitrag vorschlägt ein FastCGI-Interface.
gepostet vor 17 Jahre von duschendestroyer
Webprogrammierung ist mit so ziemlich jeder Sprache möglich. Die Anbindung läuft meistens über fcgi oder einem in dieser sprache implementierten webserver. Also musst du nurnoch die Sprache finden die dir am besten passt.
Ich finde es gut dass du erkannt hast dass PHP alles andere als optimal ist.
IMHO passt c++ nicht zu Webentwicklung da sie Stärken von C++ Geschwindigkeit und feines Speichermanagment sind. Diese Eigenschaften würde ich in der Webprogrammierung als sekundär einstufen.
ein paar Sprachen die recht verbreitet sind in der Webentwicklung sind Java, C# (mit dem ASP.NET Framework), Ruby (zb mit RubyOnRails), Python (zb mit (Django). aber wiegesagt es gibt ein riesiges Spektrum an Möglichkeiten.
gepostet vor 17 Jahre von Drezil
Original von Quick_silver
Gibt es Möglichkeiten per PHP die Daten an ein c++ Programm weiter zu leiten, oder eher: welche sind zu empfehlen?

Mein c++-daemon macht einfach einen port auf und lauscht. Und php verbindet sich dann einfach über sockets und unterhält sich mit dem. Das Wissen, welches dazu nötig ist, hat man in 2h aus einigen tutorials zusammen (einfach mal googlen nach open socket c++ o.ä.)
C++ ist aber sehr aufwändig und "schwer" zu warten, wenn man "nur" php gewohnt ist. Dann gibts (bei schlechter programmierung) eben um 3 Uhr nachts mal einen SEGFAULT und man muss sehen, wie man sowas halbwegs automatisiert löst (restart, automail des stacktraces etc. pp.).
Einfacher ginge sowas natürlich in Java (aber mal ehrlich, das will man nicht, wenn es sich nicht vermeiden lässt), oder man nimmt C# (wobei man aber an .NET unter Windows bzw. mono unter linux gebunden ist).
Für einfache Sachen, wie Kampfsystem und weitere Sachen, die man vorher gut durchtesten kann, würd ich c++ empfehlen. Ein komplettes BG würde ich in C++ nicht realisieren, weil ich es erstens nicht kann, zweitens der entwicklungsaufwand für mich alleine zu hoch ist und drittens man sich mächtig ärger einhandeln kann, wenn es sicherheitsleks gibt (buffer-overflows, ...).
gepostet vor 17 Jahre von KoMtuR
Original von Drezil
Einfacher ginge sowas natürlich in Java (aber mal ehrlich, das will man nicht, wenn es sich nicht vermeiden lässt), oder man nimmt C# (wobei man aber an .NET unter Windows bzw. mono unter linux gebunden ist).

Wieso sollte man das nicht wollen? Ich verstehe den Gedankengang nicht so recht. Sicherlich hat man bei so einem einzigen Skript, was der Dämon oder das Programm durchführen soll, einfach zuviel Overhead von der VM, aber im Endeffekt ists genauso effizient, als würde man es mit C# oder C++ machen (versteh auch nicht, was der Nachteil ist, wenn man an einem System pro Betriebssystem gebunden ist). Lieber hab ich ein zuverlässiges System (.NET oder halt Mono), als 100e unnütze VM-Versionen, die hinten und vorne nichts taugen.
Der Vorteil von C# und Java liegt doch klar aber gegenüber C++ klar auf der Hand. Man entwickelt da schon schneller und muss nicht noch allen "Klatteradatsch" mitmachen, weils halt schon in irgendeiner Klasse vorhanden ist.
Weiß ja nicht, ob man mit C++ per max. 5-Zeiler aufn Port lauschen kann.
Man muss halt am Anfang abwiegen, wieviel ich nun auf einem anderen System (Programmiersprache) entwickeln will. Bei kleinen Skripts ist C/C++ sicherlich effizienter.
gepostet vor 17 Jahre von duschendestroyer
Der Vorteil von C# und Java liegt doch klar aber gegenüber C++ klar auf der Hand. Man entwickelt da schon schneller und muss nicht noch allen "Klatteradatsch" mitmachen, weils halt schon in irgendeiner Klasse vorhanden ist.

Wobei Entwicklungsgeschwindigkeit nun nicht die große Stärke dieser beiden Sprachen ist. also im Vergleich zu c++ schon, aber im Vergleich zu dynamischen Sprachen (im idealfall mit einem guten Framework) macht man mit C#/Java doch sehr viel "Klatteradatsch". Dafür hat man halt, was ich für den Vorteil dieser Sprachen halte, eine größere Sicherheit (Statisch typisichierte Sprachen überraschen dich nicht so schnell / sind Idiotensicher) neigen aber aber zu unnötiger Komplexität.
Also mir geht es da nicht um statisch vs. dynamisch sondern um 2 Philosophien.
Nur um das mal zu vervollständigen.
gepostet vor 17 Jahre von Tarion
Nachdem was ich nun noch alles gelesen habe scheint Java wohl eines der Besten mittel zu sein.
Im Moment probiere ich mich an Hibernate und Spring auf einem Tomcat. Das ganze ist jedoch auch ziemlich aufwändig. Vielleicht hat da noch jemand gute anleitungen und kleine Beispiele.
gepostet vor 17 Jahre von KoMtuR
Ja das ist glaub ich gang und gebe, dass die Frameworks da ein wenig umständlich wirken, zumindest wenn man kleine Projekte damit realisieren will. Umso kleiner die Projekte, umso umständlicher empfindet man die Frameworks.
Zu Spring kenn ich eigentlich nur das gute Einsteigertutorial auf der Projektseite und die ganzen kleineren Tutorials auf www.springframework.net/
Zu Hibernate hab ich eigentlich nurn ordentliches buch gelesen, wo soviel Wissen eingetrichtert wird, dass man es garnicht mehr nutzen will (zumindest mein Empfinden nach 800 Seiten lesen). Zumeist findeste das in Universitätsbibliotheken, wo auch Informatik angeboten wird. Meistens brauch man nichtmal Student sein, um sich ins Reich der Informatikbücher vor zu wagen (da findeste bestimmt auch nen Struts oder Spring Buch)

Wobei Entwicklungsgeschwindigkeit nun nicht die große Stärke dieser beiden Sprachen ist. also im Vergleich zu c++ schon, aber im Vergleich zu dynamischen Sprachen (im idealfall mit einem guten Framework) macht man mit C#/Java doch sehr viel "Klatteradatsch".
Jo das ist klar. Dachte die lassen wir mal aussen vor, aber wobei zB. Python sicherlich auch eine Alternative wäre (wobei ich die Sprache hasse, weil man halt keine klaren Typen hat )
Es kommt immer drauf an, was du machen willst. Ich würde nicht für ein simples Kampfscript, was nur aus rechnen besteht, mit Java schreiben. Java und rechnen ist nicht so dufte. Ausserdem kannste da auch C oder C++ nehmen. Für größere Visionen wäre das natürlich anders. Aber wenn du dich eh an c++ anlehnen wolltest, dann kannste ja c# nehmen. Gibts sicherlich auch gute Frameworks (hibernate gibts auch unter .Net) und du hast gleich nen Silverlight Support (Wirds eigentlich auch ne Anbindung an Java geben?)
gepostet vor 17 Jahre von TheUndeadable
> und du hast gleich nen Silverlight Support (Wirds eigentlich auch ne Anbindung an Java geben?)
Silverlight ist unabhängig vom Server. Man kann Silverlight auch auf einen rein statischen Server einsetzen und dort statische Xml/JSON-Dateien nachladen.
Als Programmiersprache für die Silverlightanwendung selbst ist aber von MS nur C#, JS, Ruby und Python angedacht, es ist aber leicht möglich andere .Net-Sprachen zu inkludieren (darunter evtl J#, wobei man da aufpassen muss, da J# einige eigene Bibliotheken für die Kompatibilität nutzt, die logischerweise in Silverlight nicht enthalten sind (2 MB Downloadgröße als Ziel)).

Auf diese Diskussion antworten