使用本机脚本支持在C中创建Web服务器

时间:2010-04-11 23:38:01

标签: c http scripting lua

我是一名中级C开发人员,试图变得更好。我想用自己的脚本语言创建一个非常基本且轻量级的HTTP服务器。

我可以使用像Lua这样的东西来编写脚本吗?如果没有,那是什么?

在大多数情况下,我不想像Apache那样使用CGI / FastCGI,我希望我的服务器本身支持我的脚本语言。

编辑:我希望脚本语言是我自己的,所以我可以决定语法等。

4 个答案:

答案 0 :(得分:1)

为什么你不能使用Lua编写脚本?它是一种用C语言实现的脚本语言,充满了必要的API。

答案 1 :(得分:1)

你真正想要什么 - 你想创建一种新语言并拥有一个Web服务器吗?然后用该语言编写Web服务器,证明语言质量最佳:)

或者您是否想编写“通用”Web服务器并使用脚本语言来配置其行为(而不是“经典”配置文件)?和mod_magnet的Lighttpd一样,使用Lua吗?如果是这样,你可以:

  • 自己编写HTTP Web服务内容;它不是太难(能够回答GET / POST请求的网络服务器是一个典型的学校项目),但是如果你认真对待它会有多年的bug斗争,或者

  • 编写扩展一些现有Web服务器功能的模块(如mod_magnet对Lighttpd的作用)或

  • 使用一些实现HTTP服务器功能的库,所以你只需要用你的语言解释器粘贴它;我不知道,但您可以查看https://stackoverflow.com/questions/175507/c-c-web-server-library

但是我认为编程语言设计比实现HTTP服务器要困难得多,需要更多的理论背景,所以......祝你好运:)

答案 2 :(得分:0)

您可以在脚本方面使用Python,很容易将解释器嵌入到您的服务器中。 检查this。但是,您将无法更改语法,但您不必处理lexing / parsing /...

如果您需要帮助嵌入Python解释器,请问我。

答案 3 :(得分:0)

无论你想要什么..几乎每个网络服务器(假设我都不知道一些)是使用套接字进行编程的......你必须先查看套接字..在Microsoft操作系统中你可以使用WINSOCK库..虽然它一开始很难用,它肯定会教你网络的核心..

您可能还想尝试其他一些工具.. 例如:.NET框架提供了出色的套接字实现。对于linux,我猜有POSIX api,如果没有,你总是可以使用Java套接字..

你可能想读一本很好的书:“计算机网络,自上而下的方法”......这本书已经详细讨论了网络服务器,甚至还有一个用于教育目的的网络服务器编码示例。 快乐编程..