程序間通訊方法總結

2021-06-12 03:11:20 字數 1155 閱讀 6358

程序間通訊方法總結

程序通常被定義為乙個正在執行的程式的例項,它由兩個部分組成:   乙個是作業系統用來管理程序的核心物件。核心物件也是系統用來存放關於程序的統計資訊的地方   另乙個是位址空間,它包含所有的可執行模組或dll模組的**和資料。它還包含動態分配的空間。如執行緒堆疊和堆分配空間。每個程序被賦予它自己的虛擬位址空間,當程序中的乙個執行緒正在執行時,該執行緒可以訪問只屬於它的程序的記憶體。屬於其它程序的記憶體則是隱藏的,並不能被正在執行的執行緒訪問。   為了能在兩個程序之間進行通訊,由以下幾種方法可供參考:  

1、剪貼簿clipboard: 在16位時代常使用的方式,cwnd中提供支援   

2、視窗訊息 標準的windows訊息以及專用的wm_copydata訊息 sendmessage()接收端必須有乙個視窗  

4、動態資料交換(dde)通過維護全域性分配記憶體使的應用程式間傳遞成為可能   其方式是再一塊全域性記憶體中手工放置大量的資料,然後使用視窗訊息傳遞記憶體 指標.這是16位win時代使用的方式,因為在win32下已經沒有全域性和區域性記憶體 了,現在的記憶體只有一種就是虛存。   

5、訊息管道(message pipe)   用於設定應用程式間的一條永久通訊通道,通過該通道可以象自己的應用程式訪問乙個平面檔案一樣讀寫資料。   匿名管道(anonymous pipes)   單向流動,並且只能夠在同一電腦上的各個程序之間流動。   命名管道(named pipes)   雙向,跨網路,任何程序都可以輕易的抓住,放進管道的資料有固定的格 式,而使用readfile()只能讀取該大小的倍數。   可以被使用於i/o completion ports   

6、郵件槽(mailslots)   廣播式通訊,在32系統中提供的新方法,可以在不同主機間交換資料,在 win9x下只支援郵件槽客戶   

7、windows套接字(windows socket)   它具備訊息管道所有的功能,但遵守一套通訊標準使的不同作業系統之上的應 用程式之間可以互相通訊。   

9、rpc:遠端過程呼叫,很少使用,因其與unix的rpc不相容。   

10、序列/並行通訊(serial/parallel communication)   它允許應用程式通過序列或並行埠與其他的應用程式通訊

11、com/dcom通過com系統的**存根方式進行程序間資料交換,但只能夠表現在對介面 函式的呼叫時傳送資料,通過dcom可以在不同主機間傳送資料。

程序間通訊方法總結

具有兩個對外埠,乙個稱為讀端,乙個稱為寫端。乙個程序在管道的寫端寫資料,另乙個程序從管道的讀端讀取資料。管道僅侷限於父程序與子程序之間的通訊。管道通訊的特點 1.管道通訊是單向的,有固定的讀端和寫端。2.資料被程序從管道讀出後,在管道中該資料就不存在了。3.當程序去讀取空管道的時候,程序阻塞。4.當...

程序間通訊方法初步總結

主要有如下方式 管道 訊號 訊息佇列 共享記憶體 訊號量 套接字,本文選擇幾種大概介紹,後續會對比較重要的專門發文介紹。1.管道 管道分為有名管道和匿名管道,匿名管道只能在有親緣關係的程序間通訊,有名管道克服這個缺點。值得注意的是,只有在管道有讀端時,往管道中寫資料才有意義。否則,向管道寫資料的程序...

程序間通訊方法

1 管道 pipe 管道可用於具有親緣關係程序間的通訊,允許乙個程序和另乙個與它有共同祖先的程序之間進行通訊。2 命名管道 named pipe 命名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關 系 程序間的通訊。命名管道在檔案系統中有對應的檔名。命名管道通過命令m...