c - 开源 C 嵌入式 Web 服务器,支持基于 SOAP/JSON-RPC 的 Web 服务并与 ARM 处理器兼容

标签 c web-services webserver arm embeddedwebserver

我正在开展一个项目,将用 C 语言编写的 Web 服务器嵌入到设备中。要求是它应该支持网络服务(SOAP/JSON-RPC)并且应该与ARM处理器兼容。对特定产品有什么建议或首先要看哪里?

最佳答案

鉴于您的描述:基于 Linux 的平台和 256MB RAM,您基本上可以使用任何您喜欢的 Web 服务器。 256MB RAM 将您的设备从典型的嵌入式领域带入服务器空间。

不要担心 ARM 支持太多,因为它在 Linux 社区中得到了很好的支持。它是 Debian 官方支持的架构之一。我自己在运行 Debian 和 lighttpd 的 ARM 上运行了几个 Web 服务器,硬件只有 32MB RAM。

前三名最流行的网络服务器(流行度非常重要,因为这意味着如果您有问题可以轻松谷歌):

  • lighttpd - RAM 使用率非常低,因为它是单线程的,而且 CPU 使用率也非常低。缺点是,如果您尝试在其上运行重量级、CPU 密集型 CGI 应用程序,它的响应速度可能会很慢,因为它是单线程的。

  • Apache2 - 大量使用 RAM。 Apache 的默认运行模式是尽可能长时间保持线程存活以处理重负载。这意味着大多数时候您会在休眠进程上耗尽 RAM。但是,如果您确实需要处理重负载,这是一件好事。适用于重型 CGI 应用。

  • Nginx - 新手。不像 lighttpd 或 Apache 那样有很好的文档记录(目前,显然文档会随着时间的推移而改进),但人们一直说它优于两者。它像 Apache2 一样是多线程的,但又像 lighttpd 一样是非阻塞的,因此它兼具两全其美:它使用的 RAM 通常比 Apache2 少(尽管比 lighttpd 多),并且在负载下的性能至少与 Apache2 一样好,如果不是更好的话。对我来说唯一真正的缺点是文档。

关于c - 开源 C 嵌入式 Web 服务器,支持基于 SOAP/JSON-RPC 的 Web 服务并与 ARM 处理器兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4373602/

相关文章:

c - slerp 的输出四元数到底是什么?

c - 如何杀死内核模块中的等待队列?

nginx - 在不同端口上使用 nginx 的 Http 基本身份验证

linux - nginx 和站点上的多个网站可用

c - 我的 Blowfish 算法是 "standard"吗?

c - Linux C程序中如何设置全局变量在某个函数中只读,而在其他函数中可读写

.net - 针对不受信任的 SSL 端点生成 WCF 代理

java - REST Jersey 异常 AbstractJAXBProvider

java - Jersey Client 能否自动将 POJO 实体编码为 application/x-www-form-urlencoded,还是我需要编写自定义 MessageBodyWriter?

Java 在文件夹中搜索索引