该主题的所有示例均基于一些C/C++库,如fcgi_stdio等。但我想用汇编语言制作一个FastCGI脚本,并且没有这样的库。FastCGI应用程序 - 如何获取侦听套接字句柄?
几乎关于协议和通信的一切都很清楚,但我仍然无法理解程序如何获取监听套接字的句柄,并由Web服务器传递?
我的发现:
我安装的lighttpd服务器,并试图对其进行配置,以获得FASTCGI与我的计划工作。
但我很困惑,配置文件需要“主机”和“端口” - 这是否意味着FastCGI应该自己创建侦听套接字?我的意思是使用套接字/绑定/听/接受功能?然后我的应用程序将如何知道这些主机和端口参数。他们在Web服务器配置文件?
lighttpd允许的另一种方式是指定一些指定的套接字路径 - 例如“/tmp/myapp.socket”。我的应用程序如何处理这个问题?它将如何知道这条道路?
我尝试使用接受(0,...)作为@ user58697在他的答案中指定的一个小程序(并且这个答案符合官方的FastCGI规范!)不幸的是没有任何事发生 - 接受调用失败悲惨!
那么,通信是否是服务器特定的?
我猜测至少会有一个开源实现,可以用作参考。 –
@JoachimPileborg为了理解可能非常简单的东西,挖掘大量的C源代码并不是一个好主意。 – johnfound
我没有看过它,但对我来说,它似乎是正常的套接字通信,这意味着每当fcgi服务器从Web服务器接收到连接时,标准的[accept()](http://linux.die。 net/man/3/accept)调用将返回一个新的套接字。 – Jester