创建了一个命名管道,连接失败了,为什么?解决思路
创建了一个命名管道,连接失败了,为什么?
运行输出connect fail. 查看错误代码/信息,说是Overlapped I/O operation is in progress.
为什么?
------解决方案--------------------
异步通信是这样的
你看看这篇文章
http://blog.csdn.net/jiangdf/article/details/5681487
- C/C++ code
#include "stdafx.h" #include<Windows.h> int main(void) { HANDLE hPipe= CreateNamedPipe( "\\\\.\\pipe\\mypipe", PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE|PIPE_READMODE_BYTE, PIPE_UNLIMITED_INSTANCES, sizeof(UUID), sizeof(UUID), 10000, NULL ); HANDLE m_evt=CreateEvent(NULL,TRUE,FALSE,"myevent"); OVERLAPPED m_ov; ZeroMemory( &m_ov, sizeof(m_ov) ); m_ov.hEvent = m_evt; if( ! ConnectNamedPipe( hPipe, &m_ov ) ){ printf("connect fail\n"); return 1; } DWORD dwWritten; WriteFile(hPipe,"my",2,&dwWritten,nullptr); WaitForSingleObject(m_evt,INFINITE); printf("Ok\n"); return 0; }
运行输出connect fail. 查看错误代码/信息,说是Overlapped I/O operation is in progress.
为什么?
------解决方案--------------------
异步通信是这样的
你看看这篇文章
http://blog.csdn.net/jiangdf/article/details/5681487