新疆蜂窩七孔管材
新疆通信管道命名管道程序設計的實現
1.命名管道Server和Client間通信的實現流程
(1)建立連接:服務端通過函數CreateNamedPipe創建一個命名管道的實例并返回用于今后操作的句柄,或為已存在的管道創建新的實例。如果在已定義超時值變為零以前,有一個實例管道可以使用,則創建成功并返回管道句柄,并用以偵聽來自客戶端的連接請求,該功能通過ConnectNamedPipe函數實現。
新疆通信管道另一方面,客戶端通過函數WaitNamedPipe使服務進程等待來自客戶的實例連接,如果在超時值變為零以前,有一個管道可以為連接使用,則WaitNamedPipe將返回True,并通過調用CreateFile或CallNamedPipe來呼叫對服務端的連接。此時服務端將接受客戶端的連接請求,成功建立連接,服務端ConnectNamedPipe返回True,客戶端CreateFile將返回一指向管道文件的句柄。
從時序上講,首先是客戶端通過WaitNamedPipe使服務端的CreateFile在限時時間內創建實例成功,然后雙方通過ConnectNamedPipe和CreateFile成功連接,并返回用以通信的文件句柄,此時雙方即可進行通信。
(2)通信實現:建立連接之后,客戶端與服務器端即可通過ReadFile和WriteFile,利用得到的管道文件句柄,彼此間進行信息交換。
(3)連接終止:當客戶端與服務端的通信結束,或由于某種原因一方需要斷開時,客戶端應調用CloseFile,而服務端應接著調用DisconnectNamedPipe。當然服務端亦可通過單方面調用DisconnectNamedPipe終止連接。最后應調用函數CloseHandle來關閉該管道。
上一個:新疆蜂窩七孔管道
下一個:新疆蜂窩七孔管報價