如何在PHP和C++之间建立通信?

mfi*_*r91 11 php c++ sockets apache

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

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

理想情况下,我宁愿不使用任何库来帮助我实现这一目标.我知道这个问题以前曾被问过多次,但我仍然无处可去.

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

编辑,进一步说明:

Web服务器:我正在运行Apache Web服务器.PHP脚本位于此服务器上.

C++位置:在测试时,我的c ++应用程序存储在运行Web服务器的Raspberry Pi上.在实际应用程序中,我的C++应用程序仍将存储在同一设备上(但它不会是Raspberry Pi - 尽管仍然基于Linux).

通信:需要通过C++脚本触发PHP脚本来执行操作,反之亦然.他们需要两种方式都需要传递数据(通用数据结构,但它们可能相当大)(因此两者都需要能够发送和接收数据).

sta*_*nov 14

我认为最简单的方法是:

1)PHP - > C++:tcp

2)C++ - > PHP:http

将尝试解释.

1)从C++应用程序中获取内容PHP使用stream_socket_client函数连接到该应用程序.C++程序是在主机和端口监听使用socket,bindlisten功能.一旦连接到达C++ app accept它然后在一个单独的std::thread服务它(recv获取请求,send发送响应).如何插座.

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


Ben*_*Ben 7

另一种方法可以是SOAP或REST Web服务.在双方,您可以提供SOAP Web服务来交换数据或调用远程函数.在C++方面,您可以使用Apache Axis来提供SOAP服务器.在PHP方面,您可以使用内置SOAPServer类(http://php.net/manual/de/class.soapserver.php).

使用SOAP,您只需通过HTTP/HTTPS在两个应用程序之间交换基于XML的消息.有了这个approch,两个应用程序都可以互相触发并交换数据.