http://blog.youkuaiyun.com/HelloDan/article/details/4789583
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365603(v=vs.85).aspx
DWORD dwMode=PIPE_READMODE_BYTE |PIPE_NOWAIT;
BOOL bResult=SetNamedPipeHandleState(hPipe,&dwMode,NULL,NULL);
if(!bResult)
{
dwError = GetLastError();
// CString szDisplay;
// szDisplay.Format(_T("SetNamedPipeHandleState failed w/err 0x%08lx/n"),GetLastError());
//MessageBox(szDisplay);
return ;
}
PIPE_NOWAIT 模式立即返回,容易出错,但是wait方式,但是读文件也阻塞,建议当时读的时候用非阻塞,写的时候用阻塞,并且大数据用阻塞,小数据用非阻塞。
// 创建管道实例
HANDLE hPipe = CreateNamedPipe ( lpszPipename,
PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED, //
PIPE_TYPE_BYTE|PIPE_READMODE_BYTE|PIPE_WAIT, //message-read mode
1, // blocking mode
0, // output buffer size
0, // input buffer size
1000, // client time-out
NULL ); // default security attributes
Windows管道通信详解
本文详细介绍了Windows环境下使用命名管道进行进程间通信的方法。包括如何设置管道模式为字节模式及非阻塞模式,并讨论了不同模式下的优缺点。此外,还提供了创建命名管道实例的具体示例代码。
2420

被折叠的 条评论
为什么被折叠?



