在碳包中嵌入网络服务器

Posted

技术标签:

【中文标题】在碳包中嵌入网络服务器【英文标题】:Embed webserver in carbon bundle 【发布时间】:2010-12-29 05:43:46 【问题描述】:

我需要在为 Adob​​e Flash CS4 编译的 jsfl 外部库中嵌入一个小型网络服务器,以便外部进程可以与之通信。外部库将是 Mac 上的 Carbon 包和 Windows 上的一组 dll,因此网络服务器将需要从 C/C++ 代码嵌入/加载,而无需像 Ruby 这样的外部依赖项。大多数像 fnord 或 mini-httpd 这样的小型网络服务器从未被移植到 Mac 或 Windows 上,但主要是为了在 Linux 上编译。我正在考虑使用基于 Lua 的嵌入式网络服务器,但不确定这是否可行。有没有比其他的更容易移植到 Windows 和 Mac 的嵌入式网络服务器?

【问题讨论】:

【参考方案1】:

好吧,我终于回答了这个问题。在评估了几个网络服务器后,我发现了一个 gem,Mongoose。 Mongoose 是一个用 C 语言编写的非常小的可嵌入 Web 服务器,可以在 Linux、Mac 和 Windows 上轻松编译和运行(在 wiki 中甚至有一个链接可以让它在 iPhone 上运行)。许多网络服务器说他们这样做,但 Mongoose 很容易启动和运行。它完全符合我对小型 Web 服务器的预期,并且无需大惊小怪。我以前的方法,使用 libevent 或 libev,我发现有点太难了,主要是因为我在主 GUI 线程中遇到了线程问题。 Mongoose 支持 CGI 和 php,但实际上我发现基于 C 的处理程序非常容易编写,所以我坚持使用它。

【讨论】:

使用 Mongoose 几个月后,我仍然喜欢它,很棒的嵌入式网络服务器。【参考方案2】:

Webrick 和 Mongrel 在两者上运行。

【讨论】:

我真的需要一个没有任何外部依赖的网络服务器,比如 Ruby。这就是为什么我认为基于 Lua 的网络服务器可能是最好的选择。 真正的 NSD,但比 Ruby 或 Python 小得多。【参考方案3】:

我想到了另一个比 Lua 更简单的想法,我将尝试:使用一个使用 libevent 构建的网络服务器。我真正需要做的就是提供一个文件,并且我不需要任何其他 HTTP 功能,因此可能会使用以下内容:

http://3.rdrail.net/blog/libevent-webserver-in-40-lines-of-c/

我会回来报告的。

【讨论】:

以上是关于在碳包中嵌入网络服务器的主要内容,如果未能解决你的问题,请参考以下文章

哪个单文件嵌入式数据库用于网络项目?

在网络浏览器中嵌入IP摄像头

如何在 Java 应用程序中设置 H2 嵌入式数据库以在小型网络中使用?

Flutter开发之网络请求

嵌入式AI基础知识介绍

每当单击刷新按钮时,如何更新 iOS 应用程序包中的嵌入式 JSON 文件