如何使用FCGI检测客户端终止的连接?
我有一个用C编写的FCGI应用程序。我们有这样的情况:客户端关闭一个活动连接,即在页面加载期间离开页面,如果可能的话,我们希望在应用程序中检测到该页面。我们将web服务器nginx配置为在客户端连接意外关闭时关闭FCGI连接,因此我希望通过查看事务结束时的FCGI流状态,我们能够检测到客户端启动的关闭连接 我的问题是:在调用FCGX_Finish_r之前,是否可以在输出流上使用FCGX_GetError检测到这一点?如果不是,我如何才能捕捉到这种情况如何使用FCGI检测客户端终止的连接?,c,sockets,fastcgi,C,Sockets,Fastcgi,我有一个用C编写的FCGI应用程序。我们有这样的情况:客户端关闭一个活动连接,即在页面加载期间离开页面,如果可能的话,我们希望在应用程序中检测到该页面。我们将web服务器nginx配置为在客户端连接意外关闭时关闭FCGI连接,因此我希望通过查看事务结束时的FCGI流状态,我们能够检测到客户端启动的关闭连接 我的问题是:在调用FCGX_Finish_r之前,是否可以在输出流上使用FCGX_GetError检测到这一点?如果不是,我如何才能捕捉到这种情况 我尝试在FastCGI邮件列表上询问,但列表
我尝试在FastCGI邮件列表上询问,但列表似乎已关闭。如果数据已通过套接字传输且发生错误,FCGX_GetError将返回错误号,您也可以使用FCGX_PutStr<0检测此错误。libfcgi使用8192字节的大小对输出流进行内部缓冲,当调用FCGX_Finish_r时,将传输任何剩余的缓冲区。当客户端关闭连接时,您应该收到SIGPIPE。一般来说,忽略这个信号是安全的。但如果您需要检测到这一点,只需安装SIGPIPE的处理程序