NamedPipeClientStream Stream Problem in C ++
-
13-09-2019 - |
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();
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