如何使用c++;web服务器中的应用? 我在Windows中使用C++控制台应用程序。我想在我的网站中使用这个应用程序,以便从客户端获取输入,然后客户端调用这个应用程序进行处理,输出将转发到web服务器。我听说过COM DLL,但不知道如何为我的应用程序创建它

如何使用c++;web服务器中的应用? 我在Windows中使用C++控制台应用程序。我想在我的网站中使用这个应用程序,以便从客户端获取输入,然后客户端调用这个应用程序进行处理,输出将转发到web服务器。我听说过COM DLL,但不知道如何为我的应用程序创建它,c++,web-services,com,C++,Web Services,Com,使用CGI: 如何从客户端获取输入 getenv("QUERY_STRING") 如何将输出转发到web服务器 cout << "<html>\n"; 甚至有几种开发框架,包括Wt、cppcms、CSP等。FastCGI的主线实现在C语言中,直接支持多种语言,包括C++、 我建议使用C++ WebTooKTK WT(发音机智),AT .< /P> 该框架(带有集成应用服务器)允许您根据小部件和信号/插槽连接设计web应用程序,并将大部分web内容留在库中。由此产生

使用CGI:

如何从客户端获取输入

getenv("QUERY_STRING")  
如何将输出转发到web服务器

cout << "<html>\n";

甚至有几种开发框架,包括Wt、cppcms、CSP等。FastCGI的主线实现在C语言中,直接支持多种语言,包括C++、

我建议使用C++ WebTooKTK WT(发音机智),AT .< /P> 该框架(带有集成应用服务器)允许您根据小部件和信号/插槽连接设计web应用程序,并将大部分web内容留在库中。由此产生的应用程序是面向对象的、严格类型化的,并且完全可维护。该库自动检测浏览器的功能,并使用正确的方式渲染站点,避免浏览器错误。这是


另请参见。

您应该尝试创建一个cgi脚本,根据应用程序的需要,您应该使用FastCGI(它不会在每次调用时创建整个流程上下文)

  • CGI
您应该安装Apache服务器并激活cgi模块(默认情况下通常会激活该模块)。 然后你可以开发一个C++程序,把可执行文件放在配置的CGI文件夹中,给出正确的权限。这个CGI脚本应该进行某种进程间通信(可以通过套接字或共享内存,第一种更容易)。 我希望您知道CGI脚本在C/C+++Apache中是如何工作的,但它非常简单,总之,您收到了stdin中的环境,并将您的答案提交给stdout

  • FastCGI
您可以使用apache,安装fastcgi模块,在程序中创建一个线程(它也可以在主循环中,但我不推荐),并将apache服务器fastcgi模块连接到守护进程

最后但并非最不重要的一点是,您应该将守护进程作为服务运行

PS:有一些框架选项(比如cppcms和wt),但是 你已经编写了守护进程我想这会让你很痛苦 改变一切的蠢驴(当然,这取决于很多 例如,应用程序的复杂性和大小)


我的小组只是把它作为一个课堂项目来做的,我们主要用作一个网络库,但也用于一些次要的东西。我们将它作为windows服务器托管在AmazonEC2实例设置上,您可以自由地按照自己的意愿进行UI操作。这是一个相当简单的项目,但走这条路并不像我想象的那样有局限性。希望这有助于

在Windows和IIS 6上实现高性能,您需要创建一个dll;在IIS 7中,您需要创建一个。两者都不是特别琐碎的,您需要大量阅读。

您将使用什么Web服务器?阿帕奇?IIS?你打算自己写吗?什么平台(Windows/Linux/BSD/BeOS)?@Neil我在Windows上使用Apache Tomcat。从servlet调用外部应用程序(C++):虽然代码建议可能是问题的答案,但仅仅代码并没有解释为什么以及如何解决原始问题。因此,请添加一些解释来提供更多的解决问题的需要。我已经有了一个控制台C++应用程序,我想与我的Web服务器连接。它将在服务器中运行,但占用服务器本地资源。
#include <iostream>
#include <cstdlib>

using namespace std;

int main ()
{

   cout << "Content-type:text/html\r\n\r\n";
   cout << "<html>\n";
   cout << "<head>\n";
   cout << "<title>Hello World - First CGI Program</title>\n";
   cout << "</head>\n";
   cout << "<body>\n";
   cout << "<h2>Hello World! This is my first CGI program</h2>\n";
   cout << "<p>REQUEST_METHOD = " << getenv("REQUEST_METHOD") << "</p>\n";
   cout << "<p>QUERY_STRING = " << getenv("QUERY_STRING") << "</p>\n";
   cout << "</body>\n";
   cout << "</html>\n";

   return 0;
}