我需要在 C 中构建一个简单的 HTTP 服务器,有什么指导吗? 链接? 示例?
我建议从源头着手,比如 Lighttpd。
在端口80上打开一个 TCP 套接字,开始监听新的连接,实现 这个。 根据你的目的,你可以忽略几乎所有的事情。最简单的方法是,您可以为每个请求发送相同的响应,这只需要将文本写入套接字即可。
我已经写了我自己的,你可以使用。这个工程有 sqlite,是线程安全的,并在 C + + 的 UNIX。
你应该能够把它分开,并使用 C 兼容的代码。
Http://code.google.com/p/mountain-cms/
使用特定于平台的套接字函数来封装 HTTP 协议,就像 阿帕奇人背后的人所做的那样。
我建议你看看 极小的超文本传输协议。如果您想从头开始编写它,那么您需要从 彻底读取 RFC 2616。使用 BSD 插座以非常低的级别访问网络。
HTTP 服务器在概念上很简单:
它变得更加困难,这取决于你想要支持多少 HTTP-POST 有点复杂,脚本,处理多个请求,等等。
但是基础很简单。
Mongoose (以前是简单的 HTTP 守护进程)非常好,特别是它是可嵌入的,可在 Windows、 Windows CE 和 UNIX 下编译。
我建议你看一下: 编写客户端和服务器的实用指南
你需要循序渐进地实现的是:
HTTP 规范和 纵火犯对我来说非常有用,当我需要做 天啊作业的时候。
祝你好运
HTTP://www.Manning.com/Hethmon/ ——《保罗 · S · 赫斯蒙的 HTTP 插图指南》是一本学习 HTTP 协议的好书,对于实现/扩展 HTTP 协议的人来说非常有用。
有一个 以更多的响应重复。
一个候选人尚未提及的是 监视器。
看看 nweb (Nigel’s Web Server) ,“一个只有200行 C 源代码的小型、安全的 Web 服务器[ ... ]”:
Https://drive.google.com/file/d/0b3msld7qnnohn1nxafiwsfu2mjg/view?usp=sharing&resourcekey=0-ngy0nep78dxjklfv0pjodq Http://www.ibm.com/developerworks/systems/library/es-nweb/
本文包括伪代码、解释和注释。
编辑: IBM 的链接已经死亡。我已经保存了一个 PDF 的网页到谷歌驱动器。下面是代码下载:
Https://drive.google.com/file/d/0b3msld7qnnohsgzgddjjmmy0vhm/view?usp=sharing&resourcekey=0-xkbf4mv0gn1szrhbjt86uq
@ Ankushagarwal做了一些改动,并在 GitHub 上传了他的版本: Https://github.com/ankushagarwal/nweb