createpipe(&m_hread, &m_hwrite, &sa, 0)建立匿名管道
createprocess("..//child//debug//child.exe", null, null, null,true,
0, null, null, &sui, &pi)通過startupinfo結構體sui將父程序匿名管道讀寫控制代碼傳遞給子程序 sui.hstdinput = m_hread;
sui.hstdoutput = m_hwrite;
同樣,通過readfile和writefile從管道中讀取、寫入資料
命名管道
伺服器端:
hpipe=createnamedpipe(".//pipe//mypipe",
0,1,1024,1024,0,null); //建立命名管道
handle hevent;
hevent=createevent(null,true,false,null);
ovlap.hevent=hevent;
connectnamedpipe(hpipe,&ovlap)//等待客戶端連線
waitforsingleobject(hevent,infinite)//等待事件發生
然後通過readfile和writefile從管道中讀取資料
客戶機端:
waitnamedpipe(".//pipe//mypipe",nmpwait_wait_forever) //連線管道
hpipe=createfile(".//pipe//mypipe",generic_read | generic_write,
0,null,open_existing,file_attribute_normal,null);//開啟已經存在的管道
然後通過readfile和writefile從管道中讀取資料
油槽的伺服器端只能接收資料,客戶端只能傳送資料,由於其基於廣播通訊體系,所以可以利用油槽,編碼多個伺服器端和乙個客戶端來簡單實現乙個一對多的網路系統。
伺服器端:
handle hmailslot = createmailslot(".//mailslot//mymailslot", 0,
mailslot_wait_forever, null); //建立油槽
readfile(hmailslot, buf, 100, &dwread, null) //讀取資料
客戶端:
hmailslot = createfile(".//mailslot//mymailslot", generic_write, file_share_read,
null, open_existing, file_attribute_normal, null); //開啟油槽
writefile(hmailslot, buf, strlen(buf)+1, &dwwrite, null) //寫入資料
剪貼簿和匿名管道只能實現同一臺機器上兩個程序間的通訊,不能實現跨網路的通訊;而命名管道和油槽則兩者都可以實現,對於油槽還可以實現一對多的通訊,而命名管道只能是乙個點對點的通訊。但是油槽傳送資訊較少,要在424位元組以下。
Java 程序間通訊的四種方式
所謂程序通訊,就是不同程序之間進行一些 接觸 這種接觸有簡單,也有複雜。機制不同,複雜度也不一樣。通訊是乙個廣義上的意義,不僅僅指傳遞一些massege。他們的使用方法是基本相同的,所以只要掌握了一種的使用方法,然後記住其他的使用方法就可以了。1 訊號 在我學習的內容中,主要接觸了訊號來實現同步的機...
程序間通訊各方式間比較
管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 named pipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semophore 訊號量是乙個計數器,可以用來控制多個程序對...
Mysql的四種通訊方式
老方式,先練一下審美 tcp ip套接字連線方式是mysql在任何平台都提供的一種連線方式,也是網路中使用最多的一種方式。那麼他們是怎麼連線上的嘞?假設我有兩台伺服器分別部署mysql資料庫客戶端 192.168.0.1 和mysql資料庫例項 192.168.0.2 兩者需要進行通訊,需要建立tc...