Pipes - połączenie z programem c++

0

Witam :)
Napisałem program w c++ prosty serwer:

#include <Windows.h>
#include <cstdio>

int main(void)
{
    HANDLE hPipe;
    char buffer[1024];
    DWORD dwRead;


    hPipe = CreateNamedPipe(TEXT("\\\\.\\pipe\\pipe"), PIPE_ACCESS_DUPLEX | PIPE_TYPE_BYTE | PIPE_READMODE_BYTE, PIPE_WAIT, 1, 1024 * 16, 1024 * 16, NMPWAIT_USE_DEFAULT_WAIT, NULL);
    while (hPipe != INVALID_HANDLE_VALUE)
    {
        if (ConnectNamedPipe(hPipe, NULL) != FALSE)
        {
            while (ReadFile(hPipe, buffer, sizeof(buffer) - 1, &dwRead, NULL) != FALSE)
            {
                buffer[dwRead] = '\0';

                printf("%s", buffer);
            }
        }
        DisconnectNamedPipe(hPipe);
    }

    return 0;
}

I teraz chciałbym napisać w c# klienta, nie umiem z c# nic ale muszę to na szybko napisać. W necie znalazłem tutorial, na jego podstawie napisałem coś takiego:

 private void button1_Click(object sender, EventArgs e)
        {
            var client = new NamedPipeClientStream("pipe");
            client.Connect();
            StreamReader reader = new StreamReader(client);
            StreamWriter writer = new StreamWriter(client);
            while (true)
            {
                if (String.IsNullOrEmpty("something")) break;
                writer.WriteLine("something");
                writer.Flush();
                Console.WriteLine(reader.ReadLine());
            }
        }

Po kliknięciu wysyła "something", serwer to odbiera, wyświetla w konsoli ale nie wiem dlaczego klient łapie laga i jedynym wyjściem jest wyłączenie programu. Co muszę tu zmienić żeby działało normalnie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1