如何写一个监控命名管道连接与否的函数

解决方案 »

  1.   

    监听命名管道的一般步骤如下:// 创建一个命名管道
    HANDLE hPipe = CreateNamedPipe(...);
    if (hPipe != NULL
    {
        while(1)
        {
            // 当bConnected返回TRUE时,表明有客户端连接到管道上了,可以开始读取客户端在管道内写的数据了
            BOOL bConnected = ConnectNamedPipe(hPipe, NULL) ? TRUE : (GetLastError() == ERROR_PIPE_CONNECTED);        // 读取管道内的数据了
            ....        // 读完了管道内的数据记得关闭这次链接
             DisconnectNamedPipe(hPipe); 
            break;
        }    // 删除管道handle
        CloseHandle(hPipe);
    }