VC 命名管道使用的注意事项
2013-04-10 14:38
246 查看
程式设计的注意事项
1.假如命名管道客户端已打开,函数将会强迫关闭管道,用DisconnectNamedPipe关闭的管道,其客户端还必须用CloseHandle来关闭最后的管道。
2. ReadFile和WriteFile的hFile句柄是由CreateFile及ConnectNamedPipe返回得到。 !
3.一个已被某客户端连接的管道句柄在被另一客户通过ConnectNamedPipe建立连接之前,服务端必须用DisconnectNamedPipe函数对已存在的连接进行强行拆离。服务端拆离管道会造成管道中数据的丢失,用FlushFileBuffers函数能够确保数据不被丢失。
4.命名管道服务端能够通过新创建的管道句柄或已被连接过其他客户的管道句柄来使用ConnectNamedPipe函数,但在连接新的客户端之前,服务端必须用函数DisconnectNamedPipe切断之前的客户句柄,否则ConnectNamedPipe 将会返回False。
5.阻塞模式,这种模式仅对“字节传输管道"操作有效,并且需要客户端和服务端不在同一机器上。假如用这种模式,则只有当函数通过网络向远端电脑管道缓冲器写数据成功时,才能有效返回。假如不用这种模式,系统会运行缺省方式以提高网络的工作效率。
6.用户必须用FILE—CREATE—PIPE—INSTANCE 来访问命名管道对象。新的命名管道建立后,来自安全参数的访问控制列表定义了访问该命名管道的权限。任何命名管道实例必须使用统一的管道传输方式、管道模式等参数。客户端未启动,管道服务端不能执行阻塞读操作,否则会发生空等的阻塞状态。当最后的命名管道实例的最后一个句柄被关闭时,就应该删除该命名管道。
版权申明:本站文章均来自网络,如有侵权,一定删除。
相关文章推荐
- VC中CCheckListBox使用注意事项
- DirectX 7.0 SDK在VC 6.0环境中使用的注意事项
- vc中使用ace的注意事项
- cygwin跨平台移植 gcc+vc联合使用的方法和注意事项
- VC中使用Sleep函数的注意事项
- 在VC中使用Boost.Test独立(standalone)库自带的main函数的注意事项
- cygwin跨平台移植 gcc+vc联合使用的方法和注意事项
- VC用Ado接口连接和使用数据库及注意事项
- 使用Redis的五个注意事项(命名)
- Spring 使用其他命名空间的时候要注意的事项
- VC中CCheckListBox使用注意事项
- DirextX7。0 SDK 在VC 6.0 环境中使用的注意事项
- 管道使用注意事项
- cygwin跨平台移植 gcc+vc联合使用的方法和注意事项
- VC中使用OnSize函数,设置控件位置的注意事项
- 使用Redis的五个注意事项(命名)
- VC用Ado接口连接和使用数据库及注意事项
- DirectX 7.0 SDK在VC 6.0环境中使用的注意事项
- 学习VC++深入浅出——命名管道的使用
- cygwin跨平台移植 gcc+vc联合使用的方法和注意事项