php - 如何设置 PHP 和 C++ 之间的通信?

标签 php c++ apache sockets

我有一个关于标题问题的问题。因此,我正在尝试创建一个程序,该程序在 C++ 程序和运行 Apache Web 服务器的 PHP 站点之间传递数据/数据请求。

我一直在研究 Socket 通信,但我不理解这个概念。我了解如何在 PHP 中创建一个套接字,在 c++ 中创建另一个套接字,并且我让它们使用测试应用程序运行。但只是单独的,不互相交谈或与我的网络服务器交谈(PHP 目前不在服务器上,它在不同的服务器上)。那么这是如何工作的呢?据我了解,您需要一个监听端口号,另一个负责向该命令发送内容。

理想情况下,我不希望使用任何库来帮助我实现这一目标。我知道这个问题之前已经被问过很多次了,但我仍然无处可去。

有人可以解释上述工作原理,或者链接到此处/其他地方可能有帮助的问题吗?或者如果有比使用套接字更好的方法来做到这一点?他们会经常互相交谈,速度可能是个问题。

编辑,进一步解释:

Web 服务器:我正在运行 Apache Web 服务器。 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++ 应用程序正在使用 socketbindlisten 函数监听主机和端口。一旦连接到达 C++ 应用程序 accept 它,然后在一个单独的 std::thread 服务它(recv 获取请求, send 发送响应)。 How to socket .

2) 由于 PHP 在 Apache Web Server 下工作,我认为最简单的方法是使用 libcurl 库从 C++ 应用程序发出 HTTP 请求。 How to curl .

关于php - 如何设置 PHP 和 C++ 之间的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33401895/

相关文章:

php - 如何解决 laragon 上的 phpmyadmin 403?

php - PHP 的 openssl_encrypt() 可以使用 AES-256-cbc 输出什么范围的字符?

python - WSGI/Django : pass username back to Apache for access log

apache - SEO URL 和重写规则强制一个域

php - 我应该增加 PHP memory_limit 以匹配我的 VM memory_limit 吗?

javascript - 按Enter清除文本字段

c++ - 具有相同哈希值的值是否在 std::unordered_map 的同一桶中?

c++ - 在C++中对结构进行排序

c++ - 我可以用一些宏恢复 MSVC 16.6 中删除的 std::result_of 吗?

mysql - 如何让 XAMPP 控制面板正确安装和启动服务?