MAC OSX 程序間通訊

2021-06-27 02:35:26 字數 642 閱讀 9423

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...