https://github.com/guocf20/android_httpd 效果如下:
纯 C 实现,无依赖。主要针对原来的线程、进程问题修改,图片不支持,cgi 修改为 Lua 。不考虑并发处理。可以进一步处理用 android 来部署,应该功耗很低。^_^ 当然,用来学习 http 更合适。
1
duke807 2022-06-04 17:18:13 +08:00 via Android
busybox 裏面的 httpd 你也可以提取出來用,記得也是一個 c 文件
|
2
microxiaoxiao OP @duke807 哦 真的呀,孤陋寡闻了。回头我去看看,非常感谢。
|
3
Donahue 2022-06-04 18:04:17 +08:00
这题我会! 之前实现过类似的,但是比你的做的简单,只实现了 http GET, 和 http HEAD, 也是用多线程处理
|
4
microxiaoxiao OP @Donahue 不错,我看看能不能把它直接嵌入到 android 里面,把我的旧手机用来当一个服务器^_^.
|
5
codehz 2022-06-05 11:53:40 +08:00
(可以考虑顺带配一个 sqlite ,然后基本上就可以宣称功能完备了(
|
6
microxiaoxiao OP @codehz 大兄弟这个想法很好,我准备把 lua 嵌入进来。
|
7
codehz 2022-06-05 15:06:40 +08:00
其实我是看到这个项目才想起来的
https://redbean.dev/ (虽然它显然不能安卓上运行)可以考虑参考它的功能,除了 sqlite3 之外,还可以把 zip 带上,然后相关 api 可以参考它的 |
8
microxiaoxiao OP @codehz 这个不错呀,我还不确定把它搞成啥样,现在已经把 lua 修改了一波,把网络 socket 相关的嵌入进去了,这样的 lua 比较完整了,哈哈。
|
9
Me7426 2022-06-05 15:21:22 +08:00 via Android
|
10
microxiaoxiao OP @Me7426 只能膜拜了,我这个玩票性质。目标主要是独立不复杂,少依赖。
|
12
microxiaoxiao OP @vhus 没有哈,都没有 IO 复用,后面看情况要不要修改。
|
13
vhus 2022-06-05 19:08:54 +08:00
@microxiaoxiao
无论怎样都要支持一下,收藏先。 |
14
liyafe1997 2022-06-05 20:47:36 +08:00 via Android
既然纯 C ,是不是可以在 UEFI 下实现裸机 webserver ?直接调用 UEFI 的网卡驱动?
|
15
microxiaoxiao OP @liyafe1997 你这个目的和我不一样,你这个想法可以参考 IPMI 的界面,自己先实现一个小型 OS 比较现实
|
16
LANB0 2022-06-06 11:17:28 +08:00
@liyafe1997 纯 C 也是会依赖各种系统调用和 glibc 的吧,裸机程序的实现可是会有大不同了
|
17
microxiaoxiao OP @LANB0 还好,基于系统,主要在手机上玩。你这基于固件的思路,也会依赖固件给你的接口,本身也是个软件接口。
|