2010-01-15 2 views
1

Est-il possible d'écrire une application Web avec C qui sert à la fois d'application et de serveur Web. Je veux dire, typiquement, les applications web sont écrites en PHP qui est invoqué par Apache. Si vous voulez écrire une petite application extrêmement rapide et efficace, pouvez-vous écrire un exécutable pour travailler indépendamment de l'interpréteur Apache et PHP?Application Web autonome

Un grand merci, Majid

Edit: Je veux écrire un jeu simple et le jeu est multi-joueurs et devrait fonctionner comme un serveur, les parties clientes peuvent être des formulaires HTML dans un navigateur. Doy tu connais un jeu open source simple que je peux utiliser comme squelette? Je veux quelque chose qui ne nécessite pas de serveur web ou serveur de base de données séparé

+1

Note: Si vous pensez à lancer un petit programme pour chaque demande Web, son évolutivité sera limitée par la capacité du système d'exploitation à créer de nouveaux processus. –

Répondre

3

Bien sûr, c'est possible - si vous pouvez écrire un OS avec C, vous pouvez écrire un serveur web et une application. Ce sera juste beaucoup plus de travail.

Voici un example C web server avec seulement 200 lignes de code.

+0

Connaissez-vous des exemples d'une telle application? Peut-être un jeu simple (Open source)? –

+0

Publié un exemple de lien.Il ne fonctionne que sur des pages statiques, donc vous pourriez avoir besoin de google pour quelque chose d'un peu plus robuste. –

+0

Merci Kaleb. Je vais essayer. –

1

Bien sûr, vous pouvez en écrire un vous-même. Le protocole HTTP est vaste, mais vous n'avez pas besoin d'être un serveur Web entièrement compatible pour exécuter votre propre application.

L'application C devrait écouter les requêtes sur le port sur lequel vous décidez d'exécuter le serveur (par défaut 80). Il y a divers request methods dans HTTP, mais au minimum vous devrez implémenter GET, ou peut-être même POST mais cet aspect que vous pouvez contrôler depuis votre application web.

Voici un exemple d'une demande de base que vous programme C devrait analyser:

GET /index.html HTTP/1.1 
Host: www.example.com 

Et retourner une réponse avec le contenu demandé et en-têtes de réponse, tels que:

HTTP/1.1 200 OK 
Date: Mon, 23 May 2005 22:38:34 GMT 
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) 
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT 
Etag: "3f80f-1b6-3e1cb03b" 
Accept-Ranges: bytes 
Content-Length: 438 
Connection: close 
Content-Type: text/html; charset=UTF-8 

je peux avoir déjà mentionné cela, mais le protocole HTTP est vraiment vaste. Les navigateurs ayant des capacités variables pourraient accéder au site, et vous devrez réagir en conséquence. Cela dit, puisque tout est sous votre contrôle, vous pouvez commencer petit avec peut-être un petit sous-ensemble des demandes/en-têtes que vous souhaitez gérer, monothread, une requête à la fois, etc., puis le construire à partir de Là.

Comme Kaleb dit, si C peut être utilisé dans les systèmes d'exploitation et des vaisseaux spatiaux, alors nous pouvons certainement écrire un web et le serveur d'applications avec elle :)

0

Je viens hiphop-php qui pourrait être utilisé à cette fin. Voici ce qu'ils en disent:

HipHop pour PHP transforme le code source PHP en C++ hautement optimisé. Il a été développé par Facebook et a été libéré en open source au début de 2010.

Il peut être consulté here

Questions connexes