2010-01-15 2 views
1

Возможно ли написать веб-приложение с C, которое действует как приложение и веб-сервер.Автономное веб-приложение

Я имею в виду, как правило, веб-приложения написаны на PHP, который вызывается Apache. Если вы хотите написать чрезвычайно быстрое и эффективное небольшое приложение, можете ли вы написать исполняемый файл для работы независимо от Apache и PHP-интерпретатора?

Большое спасибо, Маджид

Edit: Я хочу, чтобы написать простую игру и игра многопользовательские и должен работать как сервер, клиентские части могут быть HTML-формы в браузере. Дой, ты знаешь какую-нибудь простую игру с открытым исходным кодом, которую я могу использовать в качестве скелета? Я хочу что-то, что не требует отдельного веб-сервера или сервера базы данных

+1

Примечания: Если вы думаете о запуске небольшой программы для веб каждого запроса, его масштабируемость будет ограничено способность операционной системы создавать новые процессы. –

ответ

3

Возможно, что если вы можете написать ОС с помощью C, вы можете написать веб-сервер и приложение. Это будет намного больше работы.

Вот example C web server всего 200 строк кода.

+0

Знаете ли вы какие-либо примеры такого приложения? Возможно, простая (с открытым исходным кодом) игра? –

+0

Отправленный пример ссылки.Однако он только ставит статические страницы, поэтому вам может понадобиться Google для чего-то более надежного. –

+0

Спасибо Калеб. Попробуй. –

1

Уверенный, что вы могли бы написать его самостоятельно. Протокол HTTP обширен, но вам не обязательно быть полностью совместимым веб-сервером для запуска вашего собственного приложения.

Приложение C должно будет прослушивать запросы на любом порту, на котором вы решили запустить сервер (по умолчанию 80). Существуют различные request methods в HTTP, но, как минимум, вам придется реализовать GET или, может быть, даже POST, но этот аспект вы можете контролировать со своего веб-приложения.

Вот пример базового запроса, программа, которую C следует разобрать:

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

И возвращает ответ с запрашиваемым контентом и ответными заголовками, такие как:

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 

я, возможно, уже упоминалось об этом, но протокол HTTP действительно огромный. Браузеры с различными возможностями могут получить доступ к сайту, и вам придется отвечать соответствующим образом. Сказав это, поскольку все это под вашим контролем, вы можете начать с малого, возможно, с небольшим подмножеством запросов/заголовков, которые вы хотите обрабатывать, однопоточными, по одному запросу за раз и т. Д., А затем построить его из там.

Как Калеб сказал, что если C может использоваться в ОС и космических кораблей, то мы можем определенно написать веб-сервер приложений и с ним :)

0

Я просто HipHop-PHP, который можно было бы использовать для этой цели. Вот что они говорят об этом:

HipHop для PHP преобразует исходный код PHP в высоко оптимизированный C++. Он был разработан Facebook и был выпущен с открытым исходным кодом в начале 2010.

Это может быть доступно here

Смежные вопросы