我必须在运行在同一系统上的java/C++/python进程之间实现IPC机制(发送短消息)。一种实现方法是使用TCP协议的套接字。这需要维护连接和其他相关活动。 相反,我正在考虑使用UDP协议,它不需要连接,我可以发送消息。 我的问题是,在同一台机器上(对于IPC)UDP是否仍然具有相同的缺点,它适用于跨机器通信时(如不可靠的数据包传输,乱序数据包)用于进程间通信的UDP
4
A
回答
3
是的,仍然是不可实现的。通信尝试使用命名管道或共享内存
编辑:
不知道你的应用程序的要求,你有没有考虑像MPI(altough的Java不能很好地支持...),或储蓄? (http://thrift.apache.org/)
1
本地UDP仍然是联合国可靠,但主要优点是UDP多播。你可以有一个数据发布者和许多数据订阅者。内核负责为你的每个用户提供一份数据报的副本。
另一方面,Unix本地数据报套接字需要可靠,但它们不支持多播。
+0
对不起,我不明白这一点。你是说UDP组播比普通的UDP更可靠吗?在回送接口上使用UDP多播也是一个好主意,以实现跨进程pub/sub带机内边界。 – madhu 2011-01-31 06:57:59
0
本地UDP仍然不可靠,有时被防火墙阻止。我们在使用本地UDP进行线程间通信的MsgConnect产品中遇到了这个问题。顺便说一句MsgConnect可以是你的任务的一个选项,所以你不需要处理套接字。不幸的是,没有Python绑定,但存在“本地”C++和Java实现。
1
本地UDP比网络更不可靠,比如50%+丢包不可靠。这是一个糟糕的选择,内核开发人员将质量归因于缺乏需求。
我会推荐调查基于消息的中间件,最好使用BSD套接字兼容接口,以便于学习曲线。一个建议是ZeroMQ其中包括C++,Java和Python绑定。
相关问题
- 1. 进程间通信
- 2. 进程间通信
- 3. 进行进程间通信,从低于该技术用于
- 4. 进程之间的通信
- 5. 如何在C#中进行进程间通信时进行进程间通信?
- 6. 使用GA库的进程间通信
- 7. C - execvp()进程间通信
- 8. 进程间通信推荐
- 9. 进程间通信Python
- 10. 探听进程间通信
- 11. Java进程间通信
- 12. 进程间通信SYSTEM_INFO structture
- 13. 进程间通信/广播
- 14. Python进程间通信
- 15. ruby进程间通信
- 16. 进程间通信Unix C
- 17. Sniff进程间通信
- 18. Java进程间通信
- 19. SystemTap进程间通信
- 20. Android的UDP通信
- 21. 用于进程间通信的AWS API网关
- 22. 哪个时钟应该用于linux中的进程间通信?
- 23. 用于进程间通信的ActiveX和COM
- 24. C++和vb.net应用程序之间的进程间通信
- 25. 窗口上的进程间通信
- 26. linux设计中的进程间通信
- 27. C中的进程间通信
- 28. C++中的进程间通信
- 29. 几个node.js进程之间的通信
- 30. MATLAB上的进程间通信
命名管道将无法使用java – madhu 2011-01-28 12:26:41
+1节俭链接 – vz0 2011-01-28 13:26:12