我必須在運行在同一系統上的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