close
IPC(InterProcess Communication) - Unix Domain Sockets篇
在寫Linux程式的時候,最常遇到的問題就是如果進行二個執行中的程式 (Daemons) 即時溝通,目前我使用的方式有
1、讀/寫特定檔案(或資料庫),進行資料交換。
2、透過Socket的方式,建立Server/Client連線。
顯而易見的缺點就是,第一種方法,不適用在大量讀寫的情境。第二種方法會實際包成Socket封包,傳送到硬體後再繞回另一端進行拆解與解析。
不過,在Linux中,提出了一種稱為IPC( InterProcess Communication,IPC )的方式,透過在Linux Kernel中宣告出一塊緩衝區 (Buffer),讓兩固不同的PID程式間能夠互通有無。最實際的例子就是PIPE與FORK的組合。
而使用Socket時,如果只是單純想要在程式間互通,則有另一種連線的方式稱為Unix Domain Sokcet,Unix Domain Sokcet也是透過IPC的機制,在二個程式建立Socket連線,但實際是連結指定的檔案上,內容只傳送資料存在的位址,透過讀寫檔案的位址達到互通的目的。
全站熱搜
留言列表