我有一个关于标题问题的问题。因此,我正在尝试创建一个程序,该程序在 C++ 程序和运行 Apache Web 服务器的 PHP 站点之间传递数据/数据请求。
我一直在研究套接字通信,但我不理解这个概念。我了解如何在 PHP 中创建一个套接字,在 C++ 中创建另一个套接字,并且我让它们使用测试应用程序运行。但只是单独地,不互相交谈或与我的网络服务器交谈(PHP 目前不在服务器上,它在不同的服务器上)。那么这是如何工作的呢?据我了解,您需要一个监听端口号,另一个向该命令发送内容。
理想情况下,我宁愿不使用任何库来帮助我实现这一目标。我知道这个问题之前已经被问过很多次了,但我仍然一无所获。
有人可以提供上述工作原理的解释,或链接到此处/其他地方可能有帮助的问题吗?或者是否有比使用套接字更好的方法?他们会经常互相交谈,速度可能是个问题。
编辑,进一步解释:
网络服务器:我正在运行一个 Apache 网络服务器。 PHP 脚本位于此服务器上。
C++ 位置:在测试时,我的 C++ 应用程序存储在运行 Web 服务器的同一个 Raspberry Pi 上。在实际应用程序中,我的 C++ 应用程序仍将存储在同一设备上(但它不会是 Raspberry Pi - 虽然仍然基于 Linux)。
通信:需要触发 PHP 脚本才能由 C++ 脚本执行操作,反之亦然。他们都需要以每种方式传递数据(通用数据结构,但它们可能相当大)(因此两者都需要能够发送和接收数据)。
最佳答案
我认为最简单的方法是:
1) PHP -> C++: TCP
2) C++ -> PHP: http
将尝试解释。
1) 要从 C++ 应用程序获取某些内容,PHP 使用 stream_socket_client 连接到该应用程序功能。 C++ 应用正在使用 socket
、bind
和 listen
函数监听主机和端口。一旦连接到达 C++ 应用程序 接受
它然后在一个单独的 std::thread
服务它(recv
获取请求,发送
发送响应)。 How to socket .
2) 由于 PHP 在 Apache Web 服务器下运行,我认为最简单的方法是使用 libcurl
库从 C++ 应用程序发出 HTTP 请求。 How to curl .
关于php - 如何在 PHP 和 C++ 之间建立通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33401895/