Visual C++网络编程经典案例详解 第3章 多线程与异步套接字编程 进程间通信 命名管道 创建命名管道

命名管道是一种不但能做同一机器上实现两个进程通信
还能在网络中的不同机器上的两个进程之间通信的机制
与油槽不同
命名管道传输数据是采取基于连接并且可靠的传输方式
命名管道数据只能1对1传输

创建命名管道可以调用函数CreateNamedPipe()进行创建
HANDLE CreateNamePipe(
  LPCTSRT lpName,
  DWORD dwOpenMode,
  DWORD dwPipeMode,
  DWORD nMaxInstances,
  DWORD nOutBufferSize,
  DWORD nInBufferSize,
  DWORD nDefaultTimeOut,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes
};

调用成功 返回创建的管道句柄
否则 返回 INVALID_HANDLE_VALUE
参数lpName表示创建的命名管道名称
格式为"\\.\pine\pipename"
但是,在实际编程,应将名称修改为 "\\\\.\\pipe\\pipename"
如果用户希望在不同计算机两个进程间通信
需要将名称字符串中的符号 .
修改为远程计算机的名称

dwOpenMode表示管道打开模式 包括访问模式 管道句柄的安全访问模式
以及重叠方式等

命名管道打开模式取值
模式取值
PIPE_ACCESS_DUPLEX         双向模式,服务器与客户端从命名管道中读取或写入数据

PIPE_ACCESS_INBOUND         命名管道的数据只能从客户端到服务器 即用户指定模式表示
                         服务器只能读取数据而客户端只能写入数据
                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值