用郵槽進行程序間通訊

2021-04-24 15:14:09 字數 1053 閱讀 1783

這種程序間通訊的方式比較適用於在區域網環境內傳送和接收短訊息,也可在區域網內向所有計算機廣播訊息。

用郵槽進行程序間通訊主要通過三個步驟來實現:建立郵槽伺服器,向郵槽傳送訊息和從郵槽中讀取訊息。下面筆者將用windows的api函式來完成這三個步驟。

一、建立郵槽伺服器

以下**用於建立乙個名叫sample_mailslot的郵槽:

bool far pascal makeslot( )

// 郵槽名稱都定義在//./mailslot/目錄下

lpstr lpszslotname = ".//mailslot//sample_mailslot";

// 郵槽控制代碼"hslot1" 是乙個全域性變數

hslot1 = createmailslot(lpszslotname,0,

// 對接受的訊息沒有最大值限制

mailslot_wait_forever, // 沒有最大讀延遲時間

(lpsecurity_attributes) null); // 無安全屬性

if (hslot1 == invalid_handle_value)

//建立郵槽失敗

return false;

return true;

二、客戶端與郵槽伺服器通訊

客戶端通過api函式向郵槽傳送訊息,然後訊息被廣播到域內的每一台計算機上,但只有指定的郵槽接收這些訊息。在這裡要注意被廣播的訊息每條不能超過400個位元組,但對每個郵槽能接受的訊息的數量沒有限制。

bool far pascal writeslot( )

// 為訊息分配記憶體

lpszbuffer = (lpstr) globalalloc(gptr, cbmessage);

lpszbuffer[0] = '/0'; fresult = readfile(hslot1, lpszbuffer, cbmessage, &&cbread,

// 顯示訊息

printf("%s",lpszbuffer);

globalfree((hglobal) lpszbuffer);

return true;

程序間的通訊 郵槽與命名管道

程序間的通訊是指在系統中兩個或多個程序之間通過第三方進行資料共享。1.郵槽.郵槽是window系統提供的一種單向通訊的機制。即程序中的一方只能寫入或者讀取資料,而另一方則只能讀取或寫入資料。通過郵槽,可以實現一對多或跨網路的程序之間的通訊。但郵槽傳輸的資料量非常小,一般只有400kb左右。郵槽建立函...

程序間通訊 郵槽伺服器與客服端

程序間通訊 郵槽伺服器與客服端 伺服器端 mialslotserver1.cpp 定義控制台應用程式的入口點。伺服器端 include stdafx.h include define max buffer len 256 int main int argc,char ar int main prin...

關於linux使用動態庫進行程序間通訊

因為之前是用共享記憶體來進行程序間的通訊,這幾天在驗證乙個思路 使用動態庫進行程序間的通訊。1.參考了 這篇帖子,建立了乙個動態庫caculate.c 與caculate.h,如下 include caculate.h include stdio.h int ishare 求兩個數的和 int ad...