【问题标题】: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 的嵌入式网络服务器?

【问题讨论】:

    标签: macos adobe lua embeddedwebserver jsfl


    【解决方案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/

    我会回来报告的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 1970-01-01
      相关资源
      最近更新 更多