mac os下的ipc方式種類很多,大約有下面幾種。
1. mach api
2. cfmessageport
3. distributed objects (do)
nsdistributednotificationcenter
5. unix domain sockets
6. internet sockets 或者 xpc(
nsconnection)
還有pipe,nstask,訊息佇列,遠端過程呼叫,通知,訊號量和鎖設定之類
第1種太底層,很少有人用蘋果也不推薦 .
第2,3,4種是蘋果提供的較為高層的通訊機制 .
第5,6種大家應該都知道,用sockets方法離散度,移植性更好。5和6有一些區別,5使用unix檔案系統作為通訊媒介,可以使用unix檔案許可權系統做通訊限制,它的另外乙個名字就叫ipc sokets,6可以做機器間通訊做本地ipc也可以,不過要額外做一些努力。
第7種適合資料比較大的情況.
1. 假如你的程序間通訊不頻繁,只是傳送一些非同步訊號,do是很好的選擇,也就是nsdistributednotificationcenter.
2. 如果你的程序間通訊頻繁,但資料量不大,需要響應度高,domain sockets很好.
php程序間通訊 yoc PHP程序間通訊
php是用c編寫的,因此它對系統底層api的操作與c很像,同大多數語言一樣,php程序間通訊的方式有以下幾種 訊息佇列,管道,共享記憶體,socket和訊號。本文是對這幾種通訊方式對整理 管道通訊pipe 管道用於承載簡稱之間的通訊資料。為了方便理解,可以將管道比作檔案,程序a將資料寫到管道p中,然...
程序間通訊
實現程序間資料共享除了常用的記憶體檔案對映外,對於一些非檔案的資料共享可以直接使用wm copydata。如果需要在程序a傳遞資料到程序b,簡單的實現如下 在程序a中 cstring strdatatosend t hello 需要傳遞的資料 hwnd hwndreceived 程序b的接收資料視窗...
程序間通訊
最近做專案遇到奇怪的問題,我在主線程中建立乙個工作執行緒。在工作執行緒中用sendmessage向主線程傳送訊息,通知主線程操作office 物件。getactiveobject時提示 hr 0x8001010d 因為應用程式正在傳送乙個輸入同步呼叫,所以無法執行傳出的呼叫。我把sendmessag...