2k 行 c 代码实现简单 HTTP 服务器,性能炸天!

2018-02-08 11:48:51 +08:00
 whatanoob

好吧,首先感谢你点击进来,原谅我标题党了。 小弟花了一个多月的业余时间,手撸了一个 HTTP Server,epoll 结合非阻塞 IO,多进程复用端口,性能还不错,可以算作超级乞丐版 nginx 吧。当然还有很多功能没有实现,有些重要的 HTTP 头部还不支持,反向代理功能也有待实现:)。有文档有测试,地址在 https://github.com/chendotjs/lotos,欢迎 star 和 pr,希望大家不吝赐教!

8748 次点击
所在节点    分享创造
39 条回复
panda1001
2018-02-08 11:51:15 +08:00
学习一个
choulinlin
2018-02-08 11:52:04 +08:00
这么多脑力耗了
目的是不是想搞大自己名气
misaka19000
2018-02-08 11:52:20 +08:00
想请问下楼主,如果我想要我的 C 语言水平能够看懂这个项目的代码需要什么样的学习路线呀,或者看什么书之类的,蟹蟹!!
whatanoob
2018-02-08 11:56:25 +08:00
@choulinlin 不是的呀,我也就一个小菜鸡,开源服务器项目那么多,我这算得上什么。做这个项目算是练练手,整合一下自己的知识,而且我在项目目的里面也提及了是为了实现本科时候的一个小愿望——写一个能用的 Web Server
choulinlin
2018-02-08 11:56:27 +08:00
@misaka19000
apue 看一下
还有就是多层指针 函数指针 结构体 联合体
不要去搞 c 了 头发很快掉光
除非是想在物联网嵌入式创业
misaka19000
2018-02-08 11:59:05 +08:00
@choulinlin 经常看好的 python 库都是用 c 语言写的,可惜 c 语言捉鸡看不懂。。。所以想好好的了解下 c 语言。。。
nine99
2018-02-08 12:00:03 +08:00
有什么用
hei1000
2018-02-08 12:10:47 +08:00
支持,才 2000+行代码,可以看看学习学习
402645707
2018-02-08 12:14:42 +08:00
建议楼主下次直接说句求 star,省的一些人阴阳怪气的来酸,真正觉得你的代码好的不会因为你这一句不给 star,也省得人来怀疑动机
tairan2006
2018-02-08 12:17:25 +08:00
star 有意义么=_=
soli
2018-02-08 12:29:07 +08:00
有多少个服务端程序员就有多少个 Web Server。。。
niubee1
2018-02-08 12:34:32 +08:00
很多年前在学校论坛和人打嘴仗, 一位高人说你们这些用 C 的弱爆了, 他作为汇编党是相当的看不起, 说你们这个论坛用的 ASP, 更是弱爆了, 然后打赌他用汇编写个 Web Server, 然后等到毕业都没有哪怕一个能跑的 demo 发出来.......
whatanoob
2018-02-08 12:42:55 +08:00
@misaka19000 回家以后我整理一下,楼上说 apue 的,对新手可能不太友好吧
whatanoob
2018-02-08 12:44:40 +08:00
@niubee1 talk is cheap, show me the code, txtx
v2lf
2018-02-08 13:33:54 +08:00
@misaka19000 有编程基础 看些书就可以直接撸了 - =
v2lf
2018-02-08 13:34:38 +08:00
@v2lf c prime plus csapp= =
v2lf
2018-02-08 13:35:28 +08:00
@v2lf c primer plus
gleymonkey
2018-02-08 13:39:22 +08:00
看成 2 行了。。。
shiweifu
2018-02-08 14:06:48 +08:00
《深入理解计算机系统》最后一章就是一个 C 语言 WebServer 的实现,还实现了 CGI。不过不是 epoll 实现的,好像是 先 展示了一波 while + fork,然后改成了 select,值得学习。
dtgio
2018-02-08 14:14:23 +08:00
马一个,不知道有生之年会不会回头看😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/429413

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX