新疆蜂窩七孔管材
新疆通信管道命名管道程序設(shè)計(jì)的實(shí)現(xiàn)
1.命名管道Server和Client間通信的實(shí)現(xiàn)流程
(1)建立連接:服務(wù)端通過函數(shù)CreateNamedPipe創(chuàng)建一個(gè)命名管道的實(shí)例并返回用于今后操作的句柄,或?yàn)橐汛嬖诘墓艿绖?chuàng)建新的實(shí)例。如果在已定義超時(shí)值變?yōu)榱阋郧埃幸粋€(gè)實(shí)例管道可以使用,則創(chuàng)建成功并返回管道句柄,并用以偵聽來自客戶端的連接請求,該功能通過ConnectNamedPipe函數(shù)實(shí)現(xiàn)。
新疆通信管道另一方面,客戶端通過函數(shù)WaitNamedPipe使服務(wù)進(jìn)程等待來自客戶的實(shí)例連接,如果在超時(shí)值變?yōu)榱阋郧埃幸粋€(gè)管道可以為連接使用,則WaitNamedPipe將返回True,并通過調(diào)用CreateFile或CallNamedPipe來呼叫對(duì)服務(wù)端的連接。此時(shí)服務(wù)端將接受客戶端的連接請求,成功建立連接,服務(wù)端ConnectNamedPipe返回True,客戶端CreateFile將返回一指向管道文件的句柄。
從時(shí)序上講,首先是客戶端通過WaitNamedPipe使服務(wù)端的CreateFile在限時(shí)時(shí)間內(nèi)創(chuàng)建實(shí)例成功,然后雙方通過ConnectNamedPipe和CreateFile成功連接,并返回用以通信的文件句柄,此時(shí)雙方即可進(jìn)行通信。
(2)通信實(shí)現(xiàn):建立連接之后,客戶端與服務(wù)器端即可通過ReadFile和WriteFile,利用得到的管道文件句柄,彼此間進(jìn)行信息交換。
(3)連接終止:當(dāng)客戶端與服務(wù)端的通信結(jié)束,或由于某種原因一方需要斷開時(shí),客戶端應(yīng)調(diào)用CloseFile,而服務(wù)端應(yīng)接著調(diào)用DisconnectNamedPipe。當(dāng)然服務(wù)端亦可通過單方面調(diào)用DisconnectNamedPipe終止連接。最后應(yīng)調(diào)用函數(shù)CloseHandle來關(guān)閉該管道。
上一個(gè):新疆蜂窩七孔管道
下一個(gè):新疆蜂窩七孔管報(bào)價(jià)