【发布时间】:2016-01-28 20:47:52
【问题描述】:
我有一个关于标题问题的问题。因此,我正在尝试创建一个程序,该程序在 C++ 程序和运行 Apache Web 服务器的 PHP 站点之间传递数据/数据请求。
我一直在研究 Socket 通信,但我不理解这个概念。我了解如何在 PHP 中创建一个套接字,在 c++ 中创建另一个套接字,并且我让它们使用测试应用程序运行。但只是单独的,不互相交谈或与我的网络服务器交谈(PHP 目前不在服务器上,它在不同的服务器上)。那么这是如何工作的呢?据我了解,您需要一个监听端口号,另一个负责向该命令发送内容。
理想情况下,我不希望使用任何库来帮助我实现这一目标。我知道这个问题之前已经被问过很多次了,但我仍然无处可去。
有人可以解释上述工作原理,或链接到此处/其他地方可能有帮助的问题吗?或者如果有比使用套接字更好的方法来做到这一点?他们会经常互相交谈,速度可能是个问题。
编辑,进一步解释:
Web 服务器:我正在运行 Apache Web 服务器。 PHP 脚本位于此服务器上。
C++ 位置:在测试时,我的 c++ 应用程序存储在运行 Web 服务器的同一个 Raspberry Pi 上。在真正的应用程序中,我的 C++ 应用程序仍将存储在同一设备上(但它不会是 Raspberry Pi - 虽然仍然基于 Linux)。
通信:PHP 脚本需要被 C++ 脚本触发才能执行操作,反之亦然。它们都需要以每种方式传递数据(常见的数据结构,但它们可能相当大)(因此两者都需要能够发送和接收数据)。
【问题讨论】:
-
你说 php 应用程序与 c++ 应用程序位于不同的服务器上?会一直这样吗?
-
这个问题很模糊。两个程序会在同一台服务器上运行吗?一种方式还是两种方式的通信?这是客户端/服务器类型的关系吗?或者也许是工人/队列类型的关系? php 是否在网络服务器(apache、ngnx 等)后面运行?
-
您好,请详细说明您的用例,只要使用相同的协议,两者都可以通信,如果您的 php 在网络服务器上,那么最好是 http/https(我假设 C++ 是客户端和 PHP是服务器)。如果 php 是 cli,那么您的选项可以扩展到 udp、tcp。您还可以使用 C++ 发送电子邮件并使用 PHP 检查接收,定期使用 wget 和 cron 作业等。
-
如果它是基于 web 的 php,则不需要原始套接字。只需获取一个 c++ http 库,然后像使用浏览器/html/forms 一样与 php 对话。
-
更新了我的问题。感谢您的帮助(让我扩展我的问题)