在C ++应用程序和Web服务器接口之间交换数据的最常用方法

时间:2014-05-21 11:21:57

标签: c++ linux interface

考虑以下情况:

基于Linux的系统运行C ++应用程序。系统需要用户名和密码,并且只能使用Web浏览器访问:

enter image description here

在Web服务器和C ++应用程序之间交换数据的最佳方法是什么?虚构的例子:

  • 网络服务器应该向用户显示目前有多少设备正在使用C ++ - 程序作为列表
  • 相反,用户可能会更改C ++程序的特定设置,例如更改与应用程序相关的端口号

实现此配置数据交换的最常用方法是什么?使用* .xml文件作为某种界面?

2 个答案:

答案 0 :(得分:3)

假设您有一个守护程序,您想要提供一个Web界面,并且您不想直接在其中嵌入Web服务器,或者将其嵌入Web服务器,那么您需要一个IPC机制。

Linux为此提供了大量原语,其中最常用的是套接字。 C ++程序将侦听套接字,等待来自Web服务器的连接。网络服务器将连接到套接字,发送请求,程序将响应。

Here是一个非常好的教程,用C编写,但适用于C ++。

通常不是直接使用原语,而是使用框架。谷歌快速搜索显示zeroMQ看起来合适。但是有很多选择。

答案 1 :(得分:2)

我同意evilruff的评论:最简单的方法可能是在您的应用程序中嵌入一个Web服务器。这其实很简单。您可以使用Wtlibonion

如果您坚持使用单独的Apache网络服务器,请考虑旧的CGI方式,或者更好的方法,Fastcgi方法。

您可能还考虑让您的C ++应用程序将一些数据放入数据库(例如PostgresQL)并让另一个Web应用程序查询该数据库。我不确定这是解决问题的好方法。

一般来说,您似乎想要一些message passing或一些remote procedure call。有很多选择:MPIONC/RPCJSON-RPC等等。