回答
IPC只是意味着進程間通信。有很多方法可以進行通信,如果兩個進程在同一臺機器上是本地的,那麼真的沒有區別。
如果您正在通過計算機進行交談,某些表單對您而言不可用,例如共享內存,信號,管道,內存映射文件或信號量。 (如果你真的想走那條路線,那麼中間件可以模擬共享內存)。
一些比較常用的方法有:
文件大多數操作系統。
信號大多數操作系統;某些系統(如Windows)只能在C運行時庫中實現信號,並且實際上不支持將它們用作IPC技術。
套接字大多數操作系統。
消息隊列大多數操作系統。
管道所有POSIX系統,Windows。
命名管道所有POSIX系統,Windows。
信號量所有POSIX系統,Windows。
共享內存所有POSIX系統,Windows。
消息傳遞 (無共享)用於MPI範例,Java RMI,CORBA,MSMQ,MailSlots等。
內存映射文件所有POSIX系統,Windows。如果使用臨時文件,此技術可能會帶來競爭狀態風險。
編輯:此列表取自Wikipedia。該清單與任何一樣好。
除非你寫了[關於IPC的維基百科文章](http://en.wikipedia.org/wiki/Inter-process_communication),這個列表是公然複製的。 – 2012-08-09 17:54:15
IPC是一個抽象術語,它表示駐留在相同或不同系統上的進程之間的任何進程間通信。
如果在不同系統上有進程,最明顯的是基於TCP的通信,包括使用TCP作爲傳輸的IPC工具。但當然這不是交換信息的唯一方式。
IPC是進程間通信,更多的是在一臺機器上共享不同進程間數據的技術,數據通過綁定不同進程的耦合。
- 第一,是使用存儲器映射技術,在其中創建的存儲器映射,和其他人打開讀/寫存儲器映射...
- 第二種是,使用套接字,以彼此通信...這有很高的開銷,因爲每個進程將不得不打開插座,進行通信...儘管有效
- 第三種方法是使用管道或命名管道,可以找到一個很好的示例here
有併發症,例如,如果一個進程是用一種語言的東西,寫在另一其他的過程中,你如何保證數據流是兼容的每個進程讀取,你可以使用谷歌的協議緩衝區,以處理this,有一個.NET版本可用,here。
雖然在不同程度上,IPC機制僅是一個域內的透明和工作,如Windows,以在Windows,Linux到Linux,你可能能夠與Windows這樣做Linux或反之亦然,儘管必須小心謹慎,因爲API差異和功能性決定了數據傳輸編碼方案的協議結果。
我可以問一下,提醒一下,如果不留言,它是無知的嗎?解釋爲什麼? – t0mm13b 2010-09-18 17:03:01
我沒有投票給你 - 但你的答案顯然是錯誤的。 IPC不用於在一臺機器中共享數據。大多數中間件的目的是啓用跨機器和同一臺機器的通信。應用程序位置在許多IPC機制中是獨立的。大多數中間件軟件包爲您處理跨語言和跨CPU架構。操作系統在許多機制中也是透明的。這個想法是簡單地選擇一個在你擁有的約束範圍內工作的。有很多選擇,你可以在我的帖子中看到。 – 2010-09-19 01:40:57
- 1. 系統V IPC限制
- 2. 「新聞系統」在不同的系統上的行爲不同
- 3. 使用不同的IPC機制
- 4. 使用不同名稱的系統類?
- 5. WinForm應用程序在不同系統中的行爲不同
- 6. 不同的排序上使用不同的系統環境
- 7. 泊塢窗使用不同的Python作爲系統
- 8. 使用curses庫爲不同的操作系統創建GUI
- 9. 如何使用不同的佈局不同tabhosts在android系統
- 10. IPC消息隊列。 msgrcv系統調用。系統V.如何走出循環
- 11. 不同系統上的SWT
- 12. 不同系統上的不同結果
- 13. 爲不同的操作系統指定不同的字體
- 14. 在不同的文件系統上使用相同的文件
- 15. 不同的NSUserDefaults在同一個系統
- 16. 不同系統下拉寬度不同
- 17. 如何爲不同的用戶設置不同的系統區域設置
- 18. 不同的機器和操作系統的應用程序行爲不同
- 19. DLL依賴關係 - 在不同的系統上有所不同?
- 20. 爲什麼Java Swing在不同系統上表現不同?
- 21. 爲什麼amd64 linux中的系統調用號碼不同?
- 22. 程序行爲在不同的系統上是不同的。爲什麼?
- 23. 子系統中系統中的不同自動填充
- 24. Adobe AIR和不同的操作系統文件系統
- 25. 毫秒的系統信號在系統verilog不使用$位
- 26. 爲什麼我的R使用與我的MacOS系統不同的Darwin版本?
- 27. IPC系統V消息隊列 - 發送一個數組的塊
- 28. 憑證提供程序和系統服務之間的IPC
- 29. 分佈式系統中IPC方法的選擇
- 30. 如何.htaccess在不同的操作系統下使用不同的指令
套接字和消息傳遞是第一個想到的.. – 2010-09-18 16:03:11