Создание веб-сервера на C с поддержкой собственных скриптов - PullRequest
0 голосов
/ 12 апреля 2010

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

Могу ли я использовать что-то вроде Lua для написания сценариев? Если нет, то что?

Я не хочу использовать CGI / FastCGI, как Apache для PHP в большинстве случаев, я хочу, чтобы мой сервер изначально поддерживал мой язык сценариев.

Редактировать: Я хочу, чтобы язык сценариев был моим, чтобы я мог выбирать синтаксис и т. Д.

Ответы [ 4 ]

1 голос
/ 12 апреля 2010

Что вы действительно хотите - хотите ли вы создать новый язык и иметь для него веб-сервер? Затем напишите веб-сервер на этом языке, который доказывает, что языковые качества лучше всего:)

Или вы хотите написать веб-сервер "общего назначения" и иметь язык сценариев для настройки его поведения (вместо "классических" файлов конфигурации)? Как Lighttpd с mod_magnet, используя Lua для этого? Если это так, вы можете:

  • напишите, что веб-сервер HTTP работает сам; это не так сложно (веб-сервер, способный отвечать на запросы GET / POST - это типичный школьный проект), но будут годы борьбы с ошибками :), если вы серьезно, или

  • написать модуль, расширяющий некоторые существующие функции веб-сервера (как это делает mod_magnet для Lighttpd), или

  • использовать некоторую библиотеку, которая реализует функциональность HTTP-сервера, так что вы просто склеиваете ее с вашим интерпретатором языка; Я не знаю ничего, но вы можете посмотреть на https://stackoverflow.com/questions/175507/c-c-web-server-library

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

1 голос
/ 12 апреля 2010

Почему вы не можете использовать Lua для написания сценариев? Это язык сценариев, реализованный на C, изобилующий необходимым API.

0 голосов
/ 12 апреля 2010

независимо от того, что вы хотите ... почти каждый веб-сервер (при условии, что я не знаю о некоторых из них) запрограммирован с использованием сокетов ... вы должны сначала заглянуть в сокеты .. В ОС Microsoft вы можете использовать библиотеку WINSOCK ... хотя его поначалу его трудно использовать, он определенно научит вас основам работы с сетью.

Существует ряд других инструментов, которые вы можете попробовать. например: .NET Framework обеспечивает отличную реализацию сокетов. Для Linux, я думаю, есть POSIX API, если нет, вы всегда можете использовать сокеты Java ..

Есть отличная книга, которую вы можете прочитать: «Компьютерные сети, подход« сверху вниз »». В книге подробно обсуждается веб-серверы и даже приведен пример кодирования веб-сервера, предназначенный для образовательных целей. Счастливого программирования ..

0 голосов
/ 12 апреля 2010

Вы можете использовать Python на стороне сценариев, легко встроить интерпретатор на ваш сервер. Проверьте это . Однако вы не сможете изменить синтаксис, но вам не придется заботиться о лексинге / разборе /...

Если вам нужна помощь по внедрению интерпретатора Python, спросите меня.

...