用CreateNamePipe创建管道以后,ConnectNamedPipe出错.这是为什么
的有关信息介绍如下:m_hPipe = CreateNamedPipe("\\\\.\\Pipe\\Test", PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE, 1, 0, 0, 1000, NULL); // 创建命名管道if (m_hPipe == INVALID_HANDLE_VALUE) m_sMessage = "创建命名管道失败!";else{ m_sMessage = "成功创建命名管道!"; AfxBeginThread(ReadProc, this); // 开启线程} UINT ReadProc(LPVOID lpVoid){ char buffer[1024]; // 数据缓存 DWORD ReadNum; CServerView* pView = (CServerView*)lpVoid; // 获取视句柄 if (ConnectNamedPipe(pView->m_hPipe, NULL) == FALSE) // 等待客户机的连接 { CloseHandle(pView->m_hPipe); // 关闭管道句柄 pView->m_sMessage = "与客户机建立连接失败!"; //旦租 显示信息 pView->Invalidate(); return 0; }else{ pView->m_sMessage = "与客户机建立连接!"; // 显示信息 pView->Invalidate(); } // 从管道读取数模侍兆据 if (ReadFile(pView->m_hPipe, buffer, sizeof(buffer), &ReadNum, NULL) == FALSE) { CloseHandle(pView->m_hPipe); // 关闭管道句柄 pView->m_sMessage = "从管道读取数据失败!"; // 显示信息 pView->Invalidate(); } else { buffer[ReadNum] = '\0'; // 显示接收到的信息 pView->m_sMessage = CString(buffer); pView->Invalidate(); } return 1;}这是一段比较流行的代码你在CreateNamePipe的时候使用了选项:PIPE_NOWAIT,非阻塞的方式谈衫,你改为阻塞的方式看看呵呵,助你好运