Frage

Wenn Sie von einem NamedPipes Server Lese mit .NET NamedPipeClientStream Klasse kann ich nur die Daten auf der ersten Lese in C ++ erhalten, jedes Mal, es nur eine leere Zeichenfolge ist. In c # funktioniert es jedes Mal.

pipeClient = gcnew NamedPipeClientStream(".", "Server_OUT", PipeDirection::In);

try
{
    pipeClient->Connect();
}
catch(TimeoutException^ e)
{
    // swallow
}

StreamReader^ sr = gcnew StreamReader(pipeClient);
String^ temp;
while (temp = sr->ReadLine())
{
    // = sr->ReadLine();
    Console::WriteLine("Received from server: {0}", temp);
}
sr->Close();
War es hilfreich?

Lösung

Das Problem wurde in C ++ Nullabschluss verwendet. Der NamedPipes Server wurde zum Beispiel das Senden

"Hallo Welt! \ N \ 0"

Beim ersten Durchgang würde dies senden

"Hallo Welt! \ N" verlassen \ 0 in dem Rohr. Auf subsequents sendet wäre es Tranmit

"\ 0Hello Welt! \ N"

C # würde die gesamte Zeichenfolge erhalten, während c ++ die Zeichenfolge an dem beenden würde \ 0 char.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top