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連線,但實際是連結指定的檔案上,內容只傳送資料存在的位址,透過讀寫檔案的位址達到互通的目的。

 

 

 

arrow
arrow
    全站熱搜

    Leo 發表在 痞客邦 留言(0) 人氣()