當前位置:編程學習大全網 - 腳本源碼 - 管道通信的註意事項

管道通信的註意事項

程序設計的註意事項

1.如果命名管道客戶端已打開,函數將會強迫關閉管道,用DisconnectNamedPipe關閉的管道,其客戶端還必須用CloseHandle來關閉最後的管道。

2. ReadFile和WriteFile的hFile句柄是由CreateFile及ConnectNamedPipe返回得到。

3.壹個已被某客戶端連接的管道句柄在被另壹客戶通過ConnectNamedPipe建立連接之前,服務端必須用DisconnectNamedPipe函數對已存在的連接進行強行拆離。服務端拆離管道會造成管道中數據的丟失,用FlushFileBuffers函數可以保證數據不被丟失。

4.命名管道服務端可以通過新創建的管道句柄或已被連接過其他客戶的管道句柄來使用ConnectNamedPipe函數,但在連接新的客戶端之前,服務端必須用函數DisconnectNamedPipe切斷之前的客戶句柄,否則ConnectNamedPipe 將會返回False。

5.阻塞模式,這種模式僅對“字節傳輸管道操作有效,並且要求客戶端與服務端不在同壹機器上。如果用這種模式,則只有當函數通過網絡向遠端計算機管道緩沖器寫數據成功時,才能有效返回。如果不用這種模式,系統會運行缺省方式以提高網絡的工作效率。

6.用戶必須用FILE—CREATE—PIPE—INSTANCE 來訪問命名管道對象。新的命名管道建立後,來自安全參數的訪問控制列表定義了訪問該命名管道的權限。所有命名管道實例必須使用統壹的管道傳輸方式、管道模式等參數。客戶端未啟動,管道服務端不能執行阻塞讀操作,否則會發生空等的阻塞狀態。當最後的命名管道實例的最後壹個句柄被關閉時,就應該刪除該命名管道。

  • 上一篇:除了動物世界和人與自然,還有其他有關動物知識的電影或影片嗎?
  • 下一篇:順娘電視劇上的歌有哪些?
  • copyright 2024編程學習大全網