Der Unterschied zwischen PIPE_TYPE_BYTE
und PIPE_TYPE_MESSAGE
Typ Modus wird auf die http://msdn.microsoft.com/en-us/library/aa365605.aspx erläutert:
Typ Modus
Die Art Modus eines Rohres bestimmt, wie Daten wird in eine Named Pipe geschrieben. Daten können über einen Namen Pipe als entweder ein Strom von Bytes oder als ein Strom von Nachrichten übertragen werden. Der Pipe-Server gibt den Leitungstyp beim Aufruf CreateNamedPipe an, um eine Instanz einer Named Pipe zu erstellen. Die Typenmodi müssen für alle Instanzen einer Leitung gleich sein.
Um eine byteartige Rohrleitung zu erstellen, geben Sie PIPE_TYPE_BYTE an oder verwenden Sie den Standardwert . Die Daten werden in die Pipe als Bytestrom geschrieben, und das System unterscheidet nicht zwischen Bytes, die in verschiedene Schreiboperationen geschrieben wurden.
Um eine Nachrichtentyp-Pipe zu erstellen, geben Sie PIPE_TYPE_MESSAGE an. Das System behandelt Bytes, die in jede Schreiboperation geschrieben wurden, an die Pipe als eine Nachricht Einheit. Das System führt immer Schreiboperationen für Nachrichtentyp-Pipes aus, als ob der Durchschreibemodus aktiviert wäre.
Wenn Sie einen Datenstrom in Bezug von Rohren schreiben möchten, sollten Sie PIPE_TYPE_BYTE
Typ-Modus verwenden. Dann können Sie beliebige Daten in den Rohrpuffer in Bezug auf WriteFile
schreiben und dort auf der anderen Seite in Bezug auf ReadFile
lesen. Wie genau die Daten gesendet werden, ist für Sie nicht wichtig. Die Daten von einigen WriteFile
Operation kann als ein Datenblock übertragen werden.
Wenn Sie PIPE_TYPE_MESSAGE
Typ-Modus verwenden, folgt jeder Schreibvorgang auf die Datenübertragung, weil das Schreiben in der Pipe als ein Senden der Nachricht interpretiert wird. Es gibt eine spezielle Funktion TransactNamedPipe
, die es Ihnen ermöglicht, eine Nachricht zu schreiben und eine Nachricht von der angegebenen Named Pipe in eine Netzwerkoperation zu lesen.
Related post: http://stackoverflow.com/questions/4514784/pipetransmissionmode-message-how-do-net-named-pipes-unterscheiden-zwischen-messag –