Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用FCGI检测客户端终止的连接?_C_Sockets_Fastcgi - Fatal编程技术网

如何使用FCGI检测客户端终止的连接?

如何使用FCGI检测客户端终止的连接?,c,sockets,fastcgi,C,Sockets,Fastcgi,我有一个用C编写的FCGI应用程序。我们有这样的情况:客户端关闭一个活动连接,即在页面加载期间离开页面,如果可能的话,我们希望在应用程序中检测到该页面。我们将web服务器nginx配置为在客户端连接意外关闭时关闭FCGI连接,因此我希望通过查看事务结束时的FCGI流状态,我们能够检测到客户端启动的关闭连接 我的问题是:在调用FCGX_Finish_r之前,是否可以在输出流上使用FCGX_GetError检测到这一点?如果不是,我如何才能捕捉到这种情况 我尝试在FastCGI邮件列表上询问,但列表

我有一个用C编写的FCGI应用程序。我们有这样的情况:客户端关闭一个活动连接,即在页面加载期间离开页面,如果可能的话,我们希望在应用程序中检测到该页面。我们将web服务器nginx配置为在客户端连接意外关闭时关闭FCGI连接,因此我希望通过查看事务结束时的FCGI流状态,我们能够检测到客户端启动的关闭连接

我的问题是:在调用FCGX_Finish_r之前,是否可以在输出流上使用FCGX_GetError检测到这一点?如果不是,我如何才能捕捉到这种情况


我尝试在FastCGI邮件列表上询问,但列表似乎已关闭。

如果数据已通过套接字传输且发生错误,FCGX_GetError将返回错误号,您也可以使用FCGX_PutStr<0检测此错误。libfcgi使用8192字节的大小对输出流进行内部缓冲,当调用FCGX_Finish_r时,将传输任何剩余的缓冲区。

当客户端关闭连接时,您应该收到SIGPIPE。一般来说,忽略这个信号是安全的。但如果您需要检测到这一点,只需安装SIGPIPE的处理程序