ANU*_*NGH 12 c++ com web-services
我在Windows中使用C++控制台应用程序.我想在我的网站中使用这个应用程序,以便从客户端获取输入,然后调用此应用程序来处理它,输出将转发到Web服务器.我听说过COM DLL,但不知道如何为我的应用程序创建它.
小智 17
您应该尝试创建一个cgi脚本,根据应用程序的需要,您应该使用FastCGI(每次调用时都不会创建整个流程上下文).
您应该安装Apache服务器并激活cgi模块(通常默认激活它).然后你可以开发一个c ++程序,将可执行文件放在配置的CGI文件夹中,给出正确的权限.这个CGI脚本应该进行某种进程间通信(可以通过套接字或共享内存,第一个更容易).我希望你知道CGI脚本在C/C++ + Apache中是如何工作的,但它非常简单,总之你在stdin中接收环境并把你的答案放到stdout.
你可以使用apache,安装fastcgi模块并在你的程序中创建一个线程(它也可能在你的主循环中,但我不建议)并将apache服务器FastCGI模块连接到你的守护进程.
最后但同样重要的是,您应该将守护程序作为服务运行.
PS:有一些框架选项(比如cppcms和wt),但是因为你已经编写了守护进程,我认为改变所有内容会很麻烦(当然,它取决于很多东西,比如复杂性和你的申请的大小).
使用CGI:http://cgi.sourceforge.net/
如何从客户端获取输入?
getenv("QUERY_STRING")
Run Code Online (Sandbox Code Playgroud)
如何将输出转发到Web服务器?
cout << "<html>\n";
Run Code Online (Sandbox Code Playgroud)
你好世界CGI:
#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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4116 次 |
| 最近记录: |