让PHP与同一服务器上的进程通信的推荐方法 我在C++中编写了一个通信软件(名为“Talkto”)。现在我想通过一个php网站访问这个程序。问题是,网络代码必须与程序交互。所以启动程序并在程序停止后查看结果是不可能的。例如,您可以使用以下参数启动我的流程: talkto.exe enum receiver

让PHP与同一服务器上的进程通信的推荐方法 我在C++中编写了一个通信软件(名为“Talkto”)。现在我想通过一个php网站访问这个程序。问题是,网络代码必须与程序交互。所以启动程序并在程序停止后查看结果是不可能的。例如,您可以使用以下参数启动我的流程: talkto.exe enum receiver,php,c++,Php,C++,该程序将广播udp包并等待应答。不幸的是,这将阻止PHP脚本,直到程序退出。此外,talkto将与接收器建立一种会话,该会话仅在运行期间有效。一旦成为枚举的一部分,接收者就可以更改其状态并将其通知talkto。我对PHP知之甚少。我需要的是一个网站,显示接收者和更新,如果状态发生变化。我完全控制了talkto,所以我可以使用stdio、插座或管道。Web服务器是一个Apache。该程序将/必须在同一台机器上运行。安全性是一个问题。您是否考虑过使用消息队列(我认为任何带有MQ后缀的都可以,Acti

该程序将广播udp包并等待应答。不幸的是,这将阻止PHP脚本,直到程序退出。此外,talkto将与接收器建立一种会话,该会话仅在运行期间有效。一旦成为枚举的一部分,接收者就可以更改其状态并将其通知talkto。我对PHP知之甚少。我需要的是一个网站,显示接收者和更新,如果状态发生变化。我完全控制了talkto,所以我可以使用stdio、插座或管道。Web服务器是一个Apache。该程序将/必须在同一台机器上运行。安全性是一个问题。

您是否考虑过使用消息队列(我认为任何带有MQ后缀的都可以,ActiveMQ、RabbitMQ、ZeroMQ),您的两个不同进程可以通过通过MQ传递的消息进行通信

链接2个进程的另一个选项是使用Redis(发布/订阅)

关于后一个问题,PHP的本质是阻止代码。有一种简单的方法可以解决这个问题,那就是使用PHP的外部队列(我正在使用这个)


基本上,您的PHP脚本会将一些任务推送到队列中,然后最终执行这些任务,这将防止代码因长时间执行而被阻塞

我认为关键在于PHP块,任何阻塞的东西都不能交互。我深入研究了ZeroMQ。我想这就行了。谢谢