下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 隨想錄(基于內(nèi)存映射的進(jìn)程通信)【 聲明:版權(quán)所有,歡迎轉(zhuǎn)載,請(qǐng)勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing 】 在通信協(xié)議的開(kāi)發(fā)中,有的時(shí)候?yàn)榱吮镜卣{(diào)試的需要,需要實(shí)現(xiàn)進(jìn)程之間的通信。在windows系統(tǒng)中,進(jìn)程通信的方式很多,比如說(shuō)有管道通信、內(nèi)存映射、socket通信、剪切板通信等等。但是,其中,我認(rèn)為最好的方式還是內(nèi)存映射的方式,簡(jiǎn)單、明了。因?yàn)橥ㄐ诺臄?shù)據(jù)是被很多進(jìn)程共享的,所以必要的互斥措施是非常必要的。只要處理好互斥的關(guān)系,內(nèi)存映射可以為我們做好不少事情。 在內(nèi)存映射中,所需要的基本函數(shù)其
2、實(shí)非常簡(jiǎn)單:(1)創(chuàng)建文件映射,即函數(shù)CreateFileMapping;(2)打開(kāi)文件映射,即函數(shù)OpenFileMapping;(3)關(guān)閉文件映射,即函數(shù)UnmapViewOfFile。名稱是server和client識(shí)別的唯一媒介。下面就是一個(gè)范例,貼出來(lái)的代碼是一個(gè)簡(jiǎn)單的服務(wù)端和客戶端代碼,略帶修改。源代碼來(lái)自于精通Windows API,函數(shù)、接口、編程實(shí)例,請(qǐng)注意版權(quán)聲明。 服務(wù)端代碼如下所示,1. #include 2. #include 3. #include
3、 4. 5. #define BUF_SIZE 256 6. 7. LPTSTR szName = TEXT("mapObject" 8. LPTSTR szMsg = TEXT("msg" 9. 10. 11. void main(int argc, char*
4、 argv 12. 13. HANDLE hMapFile; 14. LPTSTR pBuf; 15. 16. hMapFile = CreateFileMapping( 17.
5、60; INVALID_HANDLE_VALUE, 18. NULL, 19. PAGE_READWRITE, 20. 0, 21.
6、0; BUF_SIZE, 22. szName 23. 24. 25. if(hMapFile = NULL | hMapFile = INVALID
7、_HANDLE_VALUE 26. 27. return; 28. 29. 30. pBuf = (LPSTRMapViewOfFile(hMapFile,
8、0;31. FILE_MAP_ALL_ACCESS, 32. 0, 33. 0, 34. BUF_SIZE; 35.
9、; 36. if(NULL = pBuf 37. 38. return 39. 40. 41.
10、; CopyMemory(pBuf, szMsg, strlen(szMsg; 42. getch(; 43. 44. UnmapViewOfFile(pBuf; 45. CloseHandle(hMapFile; 46.
11、60; 客戶端代碼如下,1. #include 2. #include 3. #include 4. 5. #pragma comment (lib, "User32.lib" 6. #define BUF_SIZE 256 7. 8. LPTSTR szName =
12、60;TEXT("mapObject" 9. 10. void main(int argc, char* argv 11. 12. HANDLE hMapFile; 13. LPTSTR pBuf; 14.
13、0;15. hMapFile = OpenFileMapping( 16. FILE_MAP_ALL_ACCESS, 17. FALSE, 18. szName
14、60;19. 20. 21. if(hMapFile = NULL 22. 23. return 24.
15、; 25. 26. pBuf = (LPSTRMapViewOfFile(hMapFile, 27. FILE_MAP_ALL_ACCESS, 28. 0, 29. &
16、#160; 0, 30. BUF_SIZE; 31. 32. if(NULL = pBuf 33. 34. return 35.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)士面試一分鐘自我介紹7篇
- 百日沖刺演講稿4篇
- 2025美容院轉(zhuǎn)讓合同參考范文
- 高二年級(jí)下學(xué)期工作計(jì)劃10篇
- 勵(lì)志演講稿格式【5篇】
- 教師節(jié)活動(dòng)總結(jié)10篇
- 2024至2030年中國(guó)男式羅紋針織短褲行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025簡(jiǎn)單個(gè)人商鋪出租合同范本
- 2025瓷磚購(gòu)銷合同范本
- 交通安全教育個(gè)人總結(jié)10篇
- 供應(yīng)商風(fēng)險(xiǎn)管理與應(yīng)急響應(yīng)計(jì)劃
- 國(guó)開(kāi)作業(yè)《液壓與氣壓傳動(dòng)》實(shí)驗(yàn)報(bào)告1:觀察并分析液壓傳動(dòng)系統(tǒng)的組成參考(含答案)209
- 兒童繪畫與心理治療
- 勞務(wù)派遣勞務(wù)外包服務(wù)方案(技術(shù)方案)
- 特種設(shè)備安全總監(jiān)職責(zé)
- 蘇教版數(shù)學(xué)五年級(jí)上冊(cè)全冊(cè)教學(xué)反思(版本1)
- 中建鐵路路基排水溝施工方案
- 固體廢物管理制度
- 部編版語(yǔ)文四年級(jí)上冊(cè)第二單元類文閱讀理解題(含解析)
- Cmk設(shè)備能力指數(shù)分析表
- XX中學(xué)英語(yǔ)興趣社團(tuán)活動(dòng)教案(共8篇)
評(píng)論
0/150
提交評(píng)論