Beispiel #1
0
        public static bool ReadFromPipe(NamedPipeServerStream pipe, out PipeMessage msg)
        {
            msg = null;
            byte[] bufferMsgHdr = new byte[PipeMessageHeader.Size];

            if (pipe.Read(bufferMsgHdr, 0, PipeMessageHeader.Size) != 0)
            {
                var hdr = (PipeMessageHeader)GeneralHelper.DeSerializeObj(bufferMsgHdr, typeof(PipeMessageHeader));

                //check for data
                byte[] bufferData = null;
                if (hdr.DataSize != 0)
                {
                    bufferData = new byte[hdr.DataSize];
                    pipe.Read(bufferData, 0, bufferData.Length);
                }

                msg = new PipeMessage(hdr, bufferData);
                return(true);
            }
            else
            {
                return(false);
            }
        }