Windows 命名管道 + 異步I/O模型

一、管道 + 異步I/O 本地通訊模型
1、客戶端操作
發送請求                                                          
    (1) 互斥上鎖 CreateMutex, WaitForSingleObject                 
    (2) 打開命名管道 OpenNamedPipe                                
    (3) 等待管道是否可用 WaitNamedPipe                            
    (4) 創建管道寫事件 CreateEvent                                
    (5) 往管道異步寫數據 WriteFile                                
    (6) 創建管道讀事件 CreateEvent                                
    (7) 從管道讀取數據 ReadFile                                   
    (8) 關閉管道 CloseHandle(hPipe)                               
    (9) 互斥解鎖 CloseHandle(hMutex) / ReleaseMutex(hMutex)      

2、服務段操作                                       
    (0) 創建命名管道 CreateNamedPipe            
    (1) 創建管道連接事件 CreateEvent             
    (2) 連接命名管道 ConnectNamedPipe 由管道連接事件判斷是否有客戶端連接到來            
    (3) 創建管道讀事件 CreateEvent               
    (4) 從管道讀取數據 ReadFile                  
    (5) 創建管道寫事件 CreateEvent               
    (6) 往管道寫數據 WriteFile                   
    (7) 刷新寫緩衝數據 FlushFileBuffers          
    (8) 斷開管道連接   DisconnectNamedPipe

二、附錄
1、互斥加鎖
打開互斥鎖:OpenMutex(MUTEX_ALL_ACCESS, FALSE, name)
創建互斥鎖:CreateMutex(NULL, TRUE, name);
互斥上鎖  :WaitForSingleObject(mutex, INFINITE);
互斥解鎖  :CloseHandle(hMutex)
釋放互斥鎖:ReleaseMutex

2、管道操作
創建命名管道    :CreateNamedPipe
等待管道是否可用: WaitNamedPipe
管道寫操作      : WriteFile
管道讀操作      : ReadFile
命名管道連接    :ConnectNamedPipe
命名管道斷開連接:DisconnectNamedPipe
命名管道關閉    : CloseHandle

3、事件操作
創建事件:CreateEvent
等待事件:WaitForSingleObject
設置事件: SetEvent
重置事件:ResetEvent
關閉事件:CloseHandle

具體內容可以參考MSDN幫助手冊.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章