回答
幾乎任何方式兩個進程相互溝通可以被視爲一種形式的IPC。
例如:
- 命名管道(貓file.txt的| grep的富)或Named Pipes
- UNIX域套接字
- TCP或UDP套接字
- Netlink Sockets on Linux
- 各種共享內存機制如內存映射文件
- 高速消息傳遞,例如ZeroMQ
IPC代表進程間通信。 UNIX域套接字和命名管道只是兩個IPC機制,在維基百科中描述:
由於qrdl指出,UNIX域套接字和命名管道都是IPC機制。
在這兩個命名管道中,使用起來比較簡單,但比UNIX域套接字靈活得多。例如,如果您希望每個寫入過程都有多個讀取過程,那麼UNIX域套接字是必須的;如果您希望在執行寫入過程期間讀取過程停止並開始,那麼您將需要UNIX域套接字。
感謝聚焦的問題,很少更新的功能:
在域套接字,實際通信(數據交換)不使用文件系統,但在緩存內核內存。默認情況下,它是全雙工模式。
命名管道由其接入點標識,該接入點是文件系統上保存的用於處理數據的文件。默認情況下命名管道支持阻塞的讀取和寫入操作。但是,可以通過在打開命名管道時指定O_NONBLOCK標誌來使命名管道支持非阻塞操作。命名管道必須以只讀或只寫方式打開。它不能打開進行讀寫,因爲它是半雙工的單向通道。
OP被問及域套接字。域套接字通常在管道上實現,因此它們與管道一樣快。域套接字非常有用,因爲它們與網絡套接字具有完全相同的接口(只是不同的套接字系列),所以如果您的應用程序支持套接字,並且您發現雙方都位於同一臺計算機上,則可以輕鬆切換到域套接字以加快速度(X Windows就是這樣)。所以你的回答是不正確的。 – qrdl 2009-09-13 05:28:00
希望它更新得很好。 – 2009-09-13 15:22:02
- 1. 命名管道IPC
- 2. IPC安全命名管道
- 3. Qt IPC - 命名管道
- 4. 命名管道與IPC的COM對比
- 5. python與IPC和子進程命名管道混亂
- 6. IPC的性能:命名管道VS套接字
- 7. 命名管道與Windows上IPC的UDP對比
- 8. 命名管道示例
- 9. 從命名管道
- 10. 命名管道Matlab
- 11. 沒有子進程的命名管道
- 12. WCF命名管道小例子
- 13. 在C中使用管道的命名管道塊子進程
- 14. 管道ffmpeg輸出到命名管道
- 15. 與StreamWriter異步使用命名管道
- 16. 閱讀FILESTREAM(命名管道)與在Smalltalk
- 17. 使用Windows命名管道與ffmpeg管道
- 18. 管理子域名
- 19. 在VB.net命名管道問題的WCF
- 20. C#隧道/大橋從HTTP到襪子
- 21. 子域名接管域名請求
- 22. IPC:在兩個程序之間在C++中使用命名管道
- 23. 用於使用JNI的Windows'命名管道的Java程序的IPC
- 24. 在命名管道和套接字之間進行簡單切換的IPC
- 25. 命名管道問題
- 26. NSIS中的命名管道
- 27. Powershell命名管道安全?
- 28. 命名管道的安全
- 29. 單向命名管道
- 30. WCF命名管道2009年
該線程似乎得到更多的關注:http://stackoverflow.com/questions/9475442/unix-domain-socket-vs-named-pipes – schmijos 2013-03-23 10:04:14