我必须在运行在同一系统上的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. 进行进程间通信,从低于该技术用于
- 6. 进程之间的通信
- 7. .NET Concurrent Collections可用于进程间x32与x64通信之间的进程吗?
- 8. 如何在C#中进行进程间通信时进行进程间通信?
- 9. 使用GA库的进程间通信
- 10. 使用管道的进程间通信
- 11. 使用vbscript的进程间通信
- 12. C - execvp()进程间通信
- 13. Node.js进程间通信?
- 14. 进程间通信推荐
- 15. WP7进程间通信
- 16. SystemTap进程间通信
- 17. 进程间通信Python
- 18. WCF进程间通信
- 19. 进程间通信/广播
- 20. 进程间通信方式
- 21. 多路进程间通信
- 22. 进程间通信Unix C
- 23. Java进程间通信
- 24. Sniff进程间通信
- 25. 进程间通信SYSTEM_INFO structture
- 26. 探听进程间通信
- 27. Python进程间通信
- 28. Java进程间通信
- 29. ruby进程间通信
- 30. 进程间通信选项
命名管道将无法使用java – madhu 2011-01-28 12:26:41
+1节俭链接 – vz0 2011-01-28 13:26:12