在 Linux 上将 C++ 代码与任何 Web 技术集成
Posted
技术标签:
【中文标题】在 Linux 上将 C++ 代码与任何 Web 技术集成【英文标题】:Integrating C++ code with any web technology on Linux 【发布时间】:2010-09-17 09:09:33 【问题描述】:我正在用 C++ 编写一个程序,我需要一个 Web 界面来控制该程序,这将是一种高效且最好的编程语言...
【问题讨论】:
它是一个网络爬虫..我使用 ubuntu @mama:请用信息更新您的问题。不要添加 cmets。请编辑您的问题以包含所有信息。 【参考方案1】:您的应用程序只需要监听您的网络应用程序发送给它的网络消息。
任何 Web 应用程序(无论是什么语言)实现都可以使用套接字,因此不必担心细节,只需确保您的应用程序管理您为其制定协议的消息即可。
现在,如果您想全部使用 C++,您可以将 CPPCMS 用于您的 Web 应用程序。
【讨论】:
【参考方案2】:如果是 Windows,我可以建议您为您的程序注册一些 COM 组件。至少从 ASP.NET 可以轻松访问它。
您可以尝试一些内存交换技术,例如通过 localhost 套接字连接进行读/写。但是,它需要您首先设计一些交换协议。
或通过数据库进行数据交换。您的程序从数据库写入/读取数据,Web 前端读取/写入数据到数据库。
【讨论】:
哦,但我只对 linux 感兴趣【参考方案3】:您可以使用Thrift 之类的框架在 php/Python/Ruby/whatever webapp 和 C++ 守护程序之间进行通信,或者您甚至可以加倍努力(可能比仅使用 Thrift 之类的东西更难)并编写语言您选择的脚本语言的绑定。
这两个选项中的任何一个都使您能够以更适合该任务的语言编写面向 Web 的代码,同时保持 C++ 中的“繁重工作”。
【讨论】:
【参考方案4】:你看过Wt吗?它是一个用于 Web 应用程序的以小部件为中心的 C++ 框架,具有可靠的 MVC 系统、ORM...
【讨论】:
【参考方案5】:Win32 API 方法。
MSDN - Winsock 入门:
http://msdn.microsoft.com/en-us/library/ms738545%28v=VS.85%29.aspx
(由于您没有指定操作系统,我们假设是 Windows)
【讨论】:
我注意到我得到了 -1,因为我提到了 Win32。大家都知道,他没有在原始帖子中指定操作系统。谢谢。【参考方案6】:这并不像看起来那么简单!
您的 C++ 程序(它可能长时间运行,否则为什么需要控制)与典型的 Web 程序之间存在不匹配,该程序在接收到 http 请求时启动并在发送回复后终止。
您可以使用其中一个基于 Java 的 Web 服务器来执行长时间运行的任务。
或者,您可以使用数据库或其他存储作为通信媒介:- 您的程序定期将其当前状态写入一个众所周知的表,当用户调用控制应用程序时,它会读取当前状态并向用户提供一组适当的选项,然后可以将其存储在数据库中,并由您的程序执行下次轮询请求时。
如果您有可用的排队机制,这会更好,因为它可以是事件驱动的,而不是轮询的。
【讨论】:
【参考方案7】:去 PHP :) 看看这个Program execution Functions
【讨论】:
以上是关于在 Linux 上将 C++ 代码与任何 Web 技术集成的主要内容,如果未能解决你的问题,请参考以下文章
在 Linux 上将 PHP 与 MS Access 2007-2010 连接
我可以在 Windows Visual Studio 中编写 C++ 或任何代码然后“导入”到 Linux 吗?
与静态库中的 std::string 相关的 C++ 未定义符号