gpt4 book ai didi

c++ - FastCGI 通过 C : FCGX_Accept_r occasionally perform "Connection reset..."

转载 作者:行者123 更新时间:2023-11-30 20:30:48 25 4
gpt4 key购买 nike

我有一个单线程 FastCGI“Hello, World!”应用程序,有一些代码:

error = FCGX_Init();
// error handling

socket_descriptor = FCGX_OpenSocket("127.0.0.1:1500", 5);
// error handling

error = FCGX_InitRequest(&request, socket_descriptor, 0);
// error handling

std::cout << "Awaiting connect...";
bytes_accepted = FCGX_Accept_r(&request);
// error handling
std::cout << "OK!" << std::endl;

FCGX_PutS("<title>Hello!</title>\r\n", request.out)

FCGX_Finish_r(&request);

当我启动此代码时,打开浏览器并执行“127.0.0.1:1500”,浏览器显示“连接重置”,代码输出没有类似“OK”的内容,FCGX_Accept_r 似乎卡住了。

我尝试使用 iptables 在 Debian 9 x64 上打开适当的端口:

iptables -A INPUT -i eth0 -p tcp --destination-port 1500 -j ACCEPT
iptables-save

但是没有任何效果。

我做错了什么?

最佳答案

当您没有在 url 中指定架构并且端口不特定于浏览器理解的任何特定协议(protocol)时,因此浏览器将假定 http://(或者现在可能是 https?)。您的程序需要 fastcgi,这是一个不同的协议(protocol),并且该库不理解 HTTP。也许这个请求永远不会被接受。

Fastcgi 是一种与 Web 服务器通信的协议(protocol)。您需要使用一个接受 http 请求并使用 fastcgi 协议(protocol)转发这些请求的 Web 服务器。例如,nginx支持该协议(protocol)。

关于c++ - FastCGI 通过 C : FCGX_Accept_r occasionally perform "Connection reset...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53278457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com