[C++/Vb.net] Pipes

05/23/2012 11:14 Shawak#1
Hallo ich versuche eine Pipe Verbindung zwischen c++ und vb.net herzustellen, aber leider bekomme ich keine verbindung, hier der code:

c++ client
Code:
#include <windows.h>
#include <stdio.h>
#include <iostream>

using namespace std;

LPCWSTR GetPipeName()
{
    return L"\\\\.\\pipe\\Log";
}

string message = "Version: 1.0.0.0";

int main()
{
 while (true)
 {
  HANDLE pipe = CreateNamedPipe(GetPipeName(), PIPE_ACCESS_INBOUND | PIPE_ACCESS_OUTBOUND , PIPE_WAIT, 1, 1024, 1024, 120 * 1000, NULL);

  if (pipe == INVALID_HANDLE_VALUE)
  {
   cout << "Error: " << GetLastError();
  }

  char data[100];
  DWORD numRead;

  ConnectNamedPipe(pipe, NULL);

  ReadFile(pipe, data, 100, &numRead, NULL);

  if (numRead > 0)
  {
   cout << data << endl;
  } 

  CloseHandle(pipe);
 }

}

vb.net server
Code:
    Private Sub startServer()
        pipestop = False

        Dim server As IO.Pipes.NamedPipeServerStream = New IO.Pipes.NamedPipeServerStream("\\.\pipe\Log", IO.Pipes.PipeDirection.InOut)
        server.WaitForConnection()

        Dim writer As New IO.StreamWriter(server)
        writer.AutoFlush = True
        Do Until pipestop
            writer.WriteLine("test")
            Application.DoEvents()
        Loop


    End Sub
Wäre demjenigen der mir weiterhilft sehr dankbar.

mfG,
Shawak

Edit:

Kann geschlossen werde hat sich erledigt.

Für alle die wissen wollen wiel:

Code:
    Private Sub startClient()

        Dim client As IO.Pipes.NamedPipeClientStream = New IO.Pipes.NamedPipeClientStream(".", "Test", IO.Pipes.PipeDirection.Out)
        client.Connect()

        Dim writer As New IO.StreamWriter(client)
        writer.AutoFlush = True
        writer.WriteLine("Test Message")
        writer.Close()

    End Sub
Kann geschlossen werde hat sich erledigt.

Für alle die wissen wollen wiel:

Code:
    Private Sub startClient()

        Dim client As IO.Pipes.NamedPipeClientStream = New IO.Pipes.NamedPipeClientStream(".", "Test", IO.Pipes.PipeDirection.Out)
        client.Connect()

        Dim writer As New IO.StreamWriter(client)
        writer.AutoFlush = True
        writer.WriteLine("Test Message")
        writer.Close()

    End Sub