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