zoukankan      html  css  js  c++  java
  • web(六)---fastcgi进阶(请求和响应)

    接上几节, 本节写有请求和响应的demo.

    一. myecho.cpp如下:

    #include <stdlib.h>
    #include <unistd.h>
    #include "fcgio.h"
    #include "fcgi_config.h"
    
    using namespace std;
    
    int main (void)
    {
        int count = 0;
        long pid = getpid();
    
        streambuf * cin_streambuf  = cin.rdbuf();
        streambuf * cout_streambuf = cout.rdbuf();
        streambuf * cerr_streambuf = cerr.rdbuf();
    
        FCGX_Request request;
        FCGX_Init();
        FCGX_InitRequest(&request, 0, 0);
    
        while (FCGX_Accept_r(&request) == 0)
        {
            fcgi_streambuf cin_fcgi_streambuf(request.in);
            fcgi_streambuf cout_fcgi_streambuf(request.out);
            fcgi_streambuf cerr_fcgi_streambuf(request.err);
    
            cin.rdbuf(&cin_fcgi_streambuf);
            cout.rdbuf(&cout_fcgi_streambuf);
            cerr.rdbuf(&cerr_fcgi_streambuf);
    
            cout << "Content-type: text/html
    "
                    "
    "
                    "<TITLE>myecho</TITLE>
    "
                    "<H1>myecho</H1>
    "
                    "<H4>PID: " << pid << "</H4>
    "
                    "<H4>Request Number: " << ++count << "</H4>
    ";
        }
    
        cin.rdbuf(cin_streambuf);
        cout.rdbuf(cout_streambuf);
        cerr.rdbuf(cerr_streambuf);
    
        return 0;
    }

    二. 编译+运行测试.

    #g++ -o myecho myecho.cpp -I /usr/local/include -L /usr/local/lib -lfcgi -lstdc++ -lfcgi++

    #./myecho

    若编译或运行时出错(一般是库问题), 参考上几节解决办法.

    三. 将cgi拷贝到ngix(目标路径没有则手动创建)

    cp ***/myecho  /usr/local/nginx/cgibin

    四. 启动Spawn-fcgi.

    /usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 8088 -f /usr/local/nginx/cgibin/myecho

    五. 访问.

    注: python index.py已经运行的情况下.

    浏览器:    localhost/myecho.cgi

    注: fastcgi的example下有许多例子可以参考.

  • 相关阅读:
    React+AntdUi实现《好客租房系统》首页01
    javaScript学习day04——关于函数
    javaScript学习day03
    javascript学习day01
    第五章回溯法
    第四章作业
    第四章上机实践报告
    算法第三章动态规划
    PTA 7-3 编辑距离问题 (30 分)
    7-3 两个有序序列的中位数 (20 分) log n的解法
  • 原文地址:https://www.cnblogs.com/helloweworld/p/4126457.html
Copyright © 2011-2022 走看看