使用 C 语言将数据从服务器传递到 python 脚本

Passing data from Server in C language to a python script

我正在开发原型 Web 应用程序。我正在使用我自己开发的玩具 http 服务器,它是用 C 编写的。服务器需要从提交的 html 表单中获取文本数据,为了进一步处理,应该将它传递给我在 python。我知道以下方法可以实现相同的目的。此外,一旦处理完成,脚本必须 return 将数据发送到服务器。

  1. 将数据保存在文件中,让 python 脚本访问它。
  2. 从服务器代码中调用系统或 exec 系列函数。
  3. 我听说过两边都使用套接字的CGI。我知道如何在我的 python 脚本中做同样的事情。但是我无法看到在 C 服务器端是如何完成的。

通常这是抽象出来的,因为大多数人使用 apache 或 nginx 作为理论服务。 Server代码如何实现CGI?

这里介绍了 CGI:https://www.rfc-editor.org/rfc/rfc3875

'CGI over sockets' 你可能是指 FastCGI 这有点不同(并且涉及一个很长的 运行 进程监听 Unix 套接字并发回响应).经典 CGI 涉及生成一个短暂的进程,然后通过环境变量接收请求参数(通过 setenv().

从您的服务器设置)

请求数据通过 stdin 发送到派生进程(例如在 Python、sys.stdin 中)。然后通过标准输出写入输出响应(使用 headers 和全部)。

CGI 非常简单,这就是为什么它很快被大量语言采用的原因 -- 实施 CGI 的学习曲线相当快。

FastCGI与CGI的相似之处仅在于脚本语言层(即编程接口还是有些相似);然而,实际机制却大不相同(您需要通过 Unix 套接字序列化信息)。