Windows命名管道无效

时间:2012-10-21 20:11:12

标签: windows pipe named-pipes handlers

我不知道为什么这个管道无效。一切似乎都很好。这只是一个测试,我不会写或读它。任何人都可以告诉我什么是错的?

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

#define BUFSIZE 4096

int main()
{
    HANDLE hPipe;

    LPTSTR Pipename = TEXT("\\\\.\\pipe\\mypipe");

    printf("Start Server\n");

    for(;;)
    {
        hPipe = CreateNamedPipe( Pipename,
                                 PIPE_ACCESS_DUPLEX,
                                 PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
                                 PIPE_UNLIMITED_INSTANCES,
                                 BUFSIZE,
                                 BUFSIZE,
                                 NMPWAIT_USE_DEFAULT_WAIT,
                                 NULL );

        if ( hPipe == INVALID_HANDLE_VALUE )
        {
            printf("CreatePipe failed");
            return 0;
        }

        CloseHandle(hPipe);
    }
    return 1;
}

1 个答案:

答案 0 :(得分:0)

如果没有关于错误的更多细节,很难提供帮助。但是,作为一般规则,使用CreateNamedPipe创建服务器,然后使用ConnectNamedPipe。 在客户端,您现在可以使用CreateFile,ConnectNamedPipe正在服务器端等待。