【问题标题】:Stand-alone Web-application独立的 Web 应用程序
【发布时间】:2010-01-15 17:14:06
【问题描述】:

是否可以用 C 编写一个既充当应用程序又充当 Web 服务器的 Web 应用程序。

我的意思是,通常,Web 应用程序是用 Apache 调用的 PHP 编写的。如果你想写一个非常快速和高效的小型应用程序,你可以编写一个独立于 Apache 和 PHP 解释器工作的可执行文件吗?

非常感谢, 马吉德

编辑:我想写一个简单的游戏,游戏是多人游戏,应该作为服务器运行,客户端部分可以是浏览器中的 html 表单。你知道我可以用作骨架的任何简单的开源游戏吗?我想要不需要单独的网络服务器或数据库服务器的东西

【问题讨论】:

  • 注意:如果您考虑为每个 Web 请求启动一个小程序,其可扩展性将受到操作系统创建新进程的能力的限制。

标签: web-applications


【解决方案1】:

当然有可能——如果您可以用 C 编写操作系统,您就可以编写 Web 服务器和应用程序。这将是更多的工作。

这是一个只有 200 行代码的 example C web server

【讨论】:

  • 您知道此类应用程序的任何示例吗?也许是一个简单的(开源)游戏?
  • 发布了一个示例链接。但是它只提供静态页面,所以你可能需要谷歌搜索一些更强大的东西。
  • 对于 .Net,使用新的 IIS Express 网络服务器可能会起作用:weblogs.asp.net/scottgu/archive/2010/06/28/…
【解决方案2】:

当然你可以自己写一个。 HTTP 协议很庞大,但您不必成为完全兼容的 Web 服务器即可运行自己的应用程序。

C 应用程序必须在您决定运行服务器的任何端口(默认 80)上侦听请求。 HTTP 中有各种request methods,但至少您必须实现GET,或者甚至可能是POST,但由于它是您的Web 应用程序,因此您可以控制这方面。

以下是 C 程序应解析的基本请求示例:

 GET /index.html HTTP/1.1
 Host: www.example.com

并返回带有请求内容和响应头的响应,如:

 HTTP/1.1 200 OK
 Date: Mon, 23 May 2005 22:38:34 GMT
 Server: Apache/1.3.3.7 (Unix)  (Red-Hat/Linux)
 Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
 Etag: "3f80f-1b6-3e1cb03b"
 Accept-Ranges: bytes
 Content-Length: 438
 Connection: close
 Content-Type: text/html; charset=UTF-8

我可能已经提到过这一点,但 HTTP 协议确实是庞大。具有不同功能的浏览器可以访问该站点,您必须做出相应的响应。话虽如此,因为这一切都在您的控制之下,您可以从您想要处理的请求/标头的一小部分开始,单线程,一次一个请求等,然后从在那里。

就像 Kaleb 说的,如果 C 语言可以用于操作系统和宇宙飞船,那么我们绝对可以用它来编写 Web 和应用服务器 :)

【讨论】:

    【解决方案3】:

    我只是 hiphop-php 可以用于此目的。他们是这样说的:

    HipHop for PHP 将 PHP 源代码转换为高度优化的 C++。它由 Facebook 开发,并于 2010 年初作为开源发布。

    可以访问here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      相关资源
      最近更新 更多