Linux守护进程在c++中处理PHP请求
Linux Daemon in C++ to process PHP requests
操作系统:Linux(RedHat)编程语言:c++
我需要使用c++为Linux创建一个守护进程(进程),该进程将持续侦听PHP请求的自定义端口。PHP将以XML形式将请求数据发送给守护进程,守护进程将使用Xerces解析XML,并以XML形式将适当的答复发送回PHP页面。
我已经成功地在本地主机上创建了一个监听端口4646的守护进程,但是我不能弄清楚的是PHP的请求将如何进入守护进程以及守护进程将如何发送回复。
我试着用谷歌搜索这个特殊的问题,但根本找不到解决方案。对于这个问题,任何形式的帮助都将是非常感激的。
我也读了一些关于PHP守护进程的知识,但是我不确定它们是否适用于这个特殊的场景。
此方法不是硬性的,所以任何替代方法也可以。唯一困难和快速的是结果,即PHP页面和守护进程之间的成功通信。
问题相当混乱。
我需要使用C/c++为Linux创建一个守护进程(进程)
为什么一定要用C或c++写?
我也读了一些关于PHP守护进程的内容,但我不确定它们是否适用
这是否意味着它不需要用C/++编写?为什么你认为它们可能不适用?
守护进程将使用Xerces解析XML
为什么必须使用Xerces?大概守护进程应该做的不仅仅是解析XML和编写响应——它还做什么?
写守护进程不是一个简单的过程。编写套接字服务器不是一个简单的过程。通过在每端实现一个定义良好的协议,它在某种程度上简化了。
…这就引出了一个问题,为什么不直接使用HTTP作为协议和一个web服务器来实现服务器的东西,并将特定于应用程序的逻辑分离到一个CGI程序中呢?更进一步,为什么不使用PHP实现特定于应用程序的逻辑呢?
一些选择:唯一困难和快速的是结果,即PHP页面和守护进程之间的成功通信
将应用程序的特定部分编写为PHP页面,然后使用curl
通过HTTP请求调用它将服务器编写为单任务工作室服务器,并使用[x]inetd来调用它,将客户端连接作为网络套接字处理(要求您定义您的协议)
在PHP中编写一个分叉服务器守护进程,将两端的连接作为网络套接字处理(要求您定义您的协议)
在PHP中编写一个单线程服务器守护进程(使用socket_select),将两端的连接作为网络套接字处理(要求您定义您的协议)
当然,在我上面提到PHP的任何地方,您都可以同样使用C, c++, Perl, Java....等
最好使用php套接字库与系统中运行的守护进程连接,然后将数据传递给守护进程并处理守护进程发回的结果。
您可以参考PHP套接字库来创建与守护程序进行套接字连接的代码…
我认为这是一个比使用CURL更好的选择,因为守护进程也是一个自定义套接字接口,CURL将最适合HTTP请求,但我认为这里的守护进程不是一个HTTP .
xinetd/inetd可能有点过时,但可以使这变得简单和可扩展(有限制)
Inetd将调用您的程序并将流量发送到stdin,而您的stdout将进入连接。只要你不需要共享信息,你就不必担心使程序无bug/无内存泄漏等....
西蒙装载机
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 使用流处理接收到的数据
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 基于多个条件处理地图中的所有元素
- 如何用数字处理log(0)
- SSL上的`curl_easy_send`和`curl_asy_recv`:如何处理`CURLE_AGAIN`
- 错误处理.将系统错误代码映射到泛型
- 从文本文件中读取时钟时间和事件时间并进行处理
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 处理csv的最快方法,bash与php与c/c++的处理速度
- php中的Parellal处理
- 图像处理(OpenCV with PHP) - exec 命令出现问题
- 如何在php中处理二进制数据(而不是二进制字符串)
- Linux守护进程在c++中处理PHP请求
- C++ 将数据发送到 PHP 并处理响应