Example #1
0
        private void Initialize()
        {
            if (_pipeType.Equals(PipeType.SERVER))
            {
                PipeSecurity ps = new PipeSecurity();
                ps.AddAccessRule(new PipeAccessRule("Users",
                                                    PipeAccessRights.ReadWrite | PipeAccessRights.CreateNewInstance, AccessControlType.Allow));
                ps.AddAccessRule(new PipeAccessRule("CREATOR OWNER", PipeAccessRights.FullControl,
                                                    AccessControlType.Allow));
                ps.AddAccessRule(
                    new PipeAccessRule("SYSTEM", PipeAccessRights.FullControl, AccessControlType.Allow));
                ps.AddAccessRule(
                    new PipeAccessRule("Everyone", PipeAccessRights.ReadWrite, AccessControlType.Allow));


                _pipeStream = new NamedPipeServerStream(
                    _pipeName,
                    PipeDirection.InOut,
                    1, PipeTransmissionMode.Message, PipeOptions.WriteThrough, 1024, 1024, ps);

                ((NamedPipeServerStream)_pipeStream).WaitForConnection();
                _clientConnected = true;
            }
            else
            {
                _pipeStream = new NamedPipeClientStream(_pipeName);
                ((NamedPipeClientStream)_pipeStream).Connect();
                _clientConnected = true;
            }

            _streamReader = new StreamReader(_pipeStream);
            _streamWriter = new StreamWriter(_pipeStream);
        }