通過pipe進(jìn)程間通信

通過pipe進(jìn)程間通信

ID:42657704

大小:41.10 KB

頁數(shù):13頁

時(shí)間:2019-09-19

通過pipe進(jìn)程間通信_(tái)第1頁
通過pipe進(jìn)程間通信_(tái)第2頁
通過pipe進(jìn)程間通信_(tái)第3頁
通過pipe進(jìn)程間通信_(tái)第4頁
通過pipe進(jìn)程間通信_(tái)第5頁
資源描述:

《通過pipe進(jìn)程間通信》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、基于visualc++之windows核心編程代碼分析(17)通過pipe進(jìn)程間通信分類:VC++編程技術(shù)VisualC++2010編程技術(shù)VisualStudio2012Windows8信息安全2011-12-1712:17120人閱讀評(píng)論(0)收藏舉報(bào)管道是一種用于在進(jìn)程間共享數(shù)據(jù)的機(jī)制,其實(shí)質(zhì)是一段共享內(nèi)存。Windows系統(tǒng)為這段共享的內(nèi)存設(shè)計(jì)采用數(shù)據(jù)流I/0的方式來訪問。由一個(gè)進(jìn)程讀、另一個(gè)進(jìn)程寫,類似于一個(gè)管道兩端,因此這種進(jìn)程間的通信方式稱作“管道”。???管道分為匿名管道和命名管道。??

2、?匿名管道只能在父子進(jìn)程間進(jìn)行通信,不能在網(wǎng)絡(luò)間通信,而且數(shù)據(jù)傳輸是單向的,只能一端寫,另一端讀。???命令管道可以在任意進(jìn)程間通信,通信是雙向的,任意一端都可讀可寫,但是在同一時(shí)間只能有一端讀、一端寫。?管道客戶端代碼實(shí)現(xiàn)如下viewplaincopytoclipboardprint?1./*?頭文件?*/??2.#include????3.#include???4.#include???5.#include???6./*?常

3、量?*/??7.#define?BUFSIZE?512??8./*?************************************?9.*?int?main(VOID)??10.*?功能????pipe?通信服務(wù)端主函數(shù)?11.**************************************/??12.int?main(int?argc,?TCHAR?*argv[])???13.{???14.????HANDLE?hPipe;???15.????LPTSTR?lpvMessage=

4、TEXT("Default?message?from?client");???16.????TCHAR?chBuf[BUFSIZE];???17.????BOOL?fSuccess;???18.????DWORD?cbRead,?cbWritten,?dwMode;???19.????LPTSTR?lpszPipename?=?TEXT("\\.\pipe\samplenamedpipe");???1.??2.????if(?argc?>?1?)???//?如果輸入了參數(shù),則使用輸入的參數(shù)??3

5、.????????lpvMessage?=?argv[1];??4.????while?(1)???5.????{???6.????????//?打開一個(gè)命名pipe??7.????????hPipe?=?CreateFile(???8.????????????lpszPipename,???//?pipe?名???9.????????????GENERIC_READ?

6、???GENERIC_WRITE,?????//??可讀可寫??10.????????????0,??????????????//?不

7、共享??11.????????????NULL,???????????//?默認(rèn)安全屬性??12.????????????OPEN_EXISTING,??//?已經(jīng)存在(由服務(wù)端創(chuàng)建)??13.????????????0,??????????????//?默認(rèn)屬性??14.????????????NULL);??????15.????????if?(hPipe?!=?INVALID_HANDLE_VALUE)???16.????????????break;???17.??18.????????//?如果

8、不是?ERROR_PIPE_BUSY?錯(cuò)誤,直接退出????19.????????if?(GetLastError()?!=?ERROR_PIPE_BUSY)???20.????????{??21.????????????printf("Could?not?open?pipe");???22.????????????return?0;??23.????????}??24.??25.????????//?如果所有pipe實(shí)例都處于繁忙狀態(tài),等待2秒。??26.????????if?(!WaitNamedP

9、ipe(lpszPipename,?2000))???27.????????{???28.????????????printf("Could?not?open?pipe");???29.????????????return?0;??30.????????}???31.????}???32.??33.????//?pipe已經(jīng)連接,設(shè)置為消息讀狀態(tài)???34.????dwMode?=?PIPE_READMODE_MESSAGE;???35.?

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。