Question

I have no idea why this pipe is invalid. everything seems fine to me. This is just a test, i don't write or read from it. Anyone can tell me what's wrong?

#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;
}
Was it helpful?

Solution

Without more detail about the error it is difficult to help. However, as a general rule create the server using CreateNamedPipe then use ConnectNamedPipe. On the client side you can now use CreateFile, which ConnectNamedPipe is waiting for on the server side.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top