Google est bien connu pour la quantité ridicule de C ++ qu'ils ont codée au fil des ans. Corrigez-moi si je me trompe, mais une grande partie du moteur de recherche principal de Google est écrit en C ++, n'est-ce pas? Comment prendre un programme écrit en C ++ et l'interfacer avec un site web?
Remarque: je ne cherche pas à savoir comment Google en particulier fait cela, juste comment cela pourrait être fait en général.
web-development
c++
web-applications
Science maniaque
la source
la source
Réponses:
Tout logiciel Web n'enverra et ne recevra que des messages via des sockets, c'est tout. Vous pouvez utiliser n'importe quelle langue pour ce faire, ce n'est pas spécifique aux langues.
Cependant, vous feriez mieux de ne pas réinventer la roue pour ce genre de travail afin que la plupart des langages utilisés pour faire des applications web aient leur ensemble de framework qui fait la communication de base pour vous, pour vous permettre de vous concentrer sur les spécificités de votre projet. Ruby a ROR, Python a Django et autres, Java comme ... etc.
Historiquement, C ++ n'avait pas de framework similaire jusqu'à récemment:
Maintenant, la "quantité ridicule de C ++" sur laquelle Google est construit est nécessaire car vous devez disposer de modules très performants pour résoudre le type de problèmes que Google résout. Bonne chance pour essayer de faire la même chose sans aucun module écrit dans un langage axé sur la performance. Je recommande de lire le wiki CPPCMS à ce sujet pour mieux comprendre. Pour des faits historiques, Amazon, Google, Facebook (voir Hip Hop et récentes interviews d'Alexandrescu) et d'autres très gros services Web ont des cœurs en C ++, pour des raisons de calcul évidentes qui sont plus importantes que le temps perdu sur la productivité du programmeur.
CPPCMS et cpp-netlib étant open source, vous pouvez les étudier si vous voulez savoir comment faire fonctionner une application en tant que service web en utilisant C ++. Cela dit, toute application qui peut écouter des ports et envoyer des données vers le port peut potentiellement le faire, il s'agit de protocoles (TCP / IP, HTTP, etc.) , pas de code.
la source
Comme toute autre langue ....
Ouvrez un socket TCP, envoyez et recevez des messages http. Analysez-les et faites des choses en fonction du contenu.
Regardez Qt pour un exemple sur un framework c ++ qui prend en charge certaines fonctionnalités http de base.
Il existe également des frameworks Web dédiés pour C ++. Pas beaucoup ni largement utilisé, AFAIK. Probablement parce que si vous faites du Web via C ++, vous faites de toute façon quelque chose de très spécialisé et vous voulez un contrôle total sur tout.
la source
Du point de vue du client, si vous avez un programme C / C ++ et que vous souhaitez l'utiliser pour parler à Internet, vous utiliserez libcurl. C'est à peu près une bibliothèque standard (et complète) pour se connecter aux URL http pour envoyer et recevoir des données. Il existe plusieurs autres bibliothèques - Microsoft en a quelques-unes, il y en a plusieurs open source.
Maintenant, c'est pour les anciennes URL simples sur http (ou SMTP, ou FTP, ou Gopher, ou .. libcurl est très complet!) Si vous essayez de consommer des services Web sur SOAP, vous pouvez utiliser l'une des nombreuses autres bibliothèques telles que gsoap.
Côté serveur, vous avez besoin d'un serveur Web ou d'une infrastructure qui expose votre code C ++. Encore une fois, il existe de nombreuses façons de le faire - les premiers programmes Web étaient tous en C / C ++, écrits en tant que programmes CGI où le serveur Web appelait votre application à l'aide d'une forme d'IPC. Depuis, nous avons Wt, Qt, cppCMS, ffead et tous ceux de Microsoft (ISAPI, ATLServer, et maintenant Casablanca).
Je pense que la raison pour laquelle personne n'utilise vraiment C ++ pour son progrmaming web est parce que les autres langues sont pré-packagées avec ces bibliothèques. C ++ (comme toujours), vous devez trouver une bibliothèque à utiliser, tandis que PHP est juste prêt à être utilisé pour le Web.
la source
L'architecture client-serveur permet cela.
C ++ peut être utilisé pour développer le serveur.
Côté client, les technologies Web peuvent être utilisées pour communiquer avec le serveur.
la source