http://blog.csdn.net/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