我正在PHP中开发一个小型服务器守护进程,它将与各种远程客户端进行通信 - 非常简单。然而,运行在同一台机器上的另一个守护进程需要尽可能快地与第一个进行通信,但可能会不断发送数百KB的数据(希望在20 HTZ范围内)。我非常积极的想要在这两个守护进程之间使用tcp连接,但这正是我需要一些建议的地方。现在在你问之前,我不能简单地将它们组合成同一个守护进程的原因是,第二个可以用多种语言之一编写,包括java,.net,C++,python,ruby等。如果有一种方法为了使PHP与另一种语言无需使用tcp连接(或使用不适合我需要的系统调用)并且不牺牲性能,我都是耳朵,但我一直在寻找一种方法来做到这一点,我无法真正找到一种干净而简单的方式 - 至少不是一种“适合所有人”的时尚方式。与PHP守护进程交谈
回答
由于其他进程将在同一台机器上,如何使用proc_open()
,那么你只需写入/读取管道(标准输入/标准输出等)创建?
太棒了!我会给你一个尝试..你认为即使我在单个写入/读取操作中说出1MB的数据,这种方法也能正常工作吗? – Xealgo 2012-03-15 05:57:13
@Xealgo是的,没问题 - 通过UNIX套接字(管道)进行通信的速度非常快。 – 2012-03-15 07:51:05
您可以使用套接字。 PHP有一个套接字实现:http://www.php.net/manual/en/ref.sockets.php
我只使用C编写过真正的套接字编程,但您列出的大多数其他语言都应该能够使用套接字。
在PHP中,您将使用socket_bind()
连接到套接字。同样,您需要在另一个守护进程上执行相同的操作。
我已经在这工作了一下,但是谢谢你发帖! – Xealgo 2012-03-15 05:55:51
- 1. 与守护进程交谈
- 2. 与设备交谈的守护程序
- 3. PHP守护进程,并与之交互
- 4. PHP服务(守护进程)
- 5. PHP守护进程脚本
- 6. 管理php守护进程
- 7. 定时器()作为守护进程与非守护进程
- 8. git守护进程与LFS?
- 9. Emacs守护进程:交换密钥
- 10. 提交守护进程或服务
- 11. Linux守护进程
- 12. iphone守护进程
- 13. Python守护进程
- 14. perl的守护进程PROC ::守护::初始化与DBI
- 15. Linux守护进程停止启动 - 停止守护进程
- 16. PHP守护进程/工作环境
- 17. PHP API守护进程在URL
- 18. 了解什么是PHP守护进程
- 19. 从PHP启动一个守护进程
- 20. Php守护进程经常崩溃
- 21. 如何设置PHP守护进程?
- 22. java守护进程线程
- 23. 使用listen-addr与docker守护进程
- 24. 异步守护进程处理/与Django的ORM交互
- 25. 守护进程结构
- 26. Authlogic&delayed_job&delayed_jobl_mailer&守护进程?
- 27. Windows的Docker守护进程
- 28. FreeBSD的守护进程库
- 29. 如何守护进程?
- 30. 停止Erlang守护进程
Unix域套接字总是比TCP更快。不要将tcp用于本地通信。 – 2012-03-15 05:45:54