Inheritance: MultiplexedConnection
コード例 #1
0
        MultiplexedConnection CorrelateConnection(int connectionId, object state)
        {
            MultiplexedPipeConnection connection = null;

            connections.TryGetValue(connectionId, out connection);
            return(connection);
        }
コード例 #2
0
        void ClientAccepted(IAsyncResult asyncResult)
        {
            try
            {
                NamedPipeServerStream pipeListener = asyncResult.AsyncState as NamedPipeServerStream;
                pipeListener.EndWaitForConnection(asyncResult);

                NamedPipeServerStream nextPipeListener = new NamedPipeServerStream(localPipe, PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Message, PipeOptions.Asynchronous);
                nextPipeListener.BeginWaitForConnection(ClientAccepted, nextPipeListener);

                try
                {
                    Stream socketStream = pipeListener;

                    EnsureConnection();

                    MultiplexedPipeConnection multiplexedConnection = new MultiplexedPipeConnection(pipeListener, this.multiplexedOutputStream);
                    multiplexedConnection.Closed += new EventHandler(MultiplexedConnectionClosed);
                    lock (connectionLock)
                    {
                        connections.Add(multiplexedConnection.Id, multiplexedConnection);
                    }
                }
                catch (Exception ex)
                {
                    Trace.TraceError("Unable to establish connection: {0}", ex.Message);
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError("Failure accepting client: {0}", ex.Message);
            }
        }
コード例 #3
0
        void MultiplexedConnectionClosed(object sender, EventArgs e)
        {
            MultiplexedPipeConnection connection = (MultiplexedPipeConnection)sender;

            connections.Remove(connection.Id);
        }
コード例 #4
0
        void ClientAccepted(IAsyncResult asyncResult)
        {
            try
            {
                NamedPipeServerStream pipeListener = asyncResult.AsyncState as NamedPipeServerStream;
                pipeListener.EndWaitForConnection(asyncResult);

                NamedPipeServerStream nextPipeListener = new NamedPipeServerStream(localPipe, PipeDirection.InOut, NamedPipeServerStream.MaxAllowedServerInstances, PipeTransmissionMode.Message, PipeOptions.Asynchronous);
                nextPipeListener.BeginWaitForConnection(ClientAccepted, nextPipeListener);

                try
                {
                    Stream socketStream = pipeListener;

                    EnsureConnection();

                    MultiplexedPipeConnection multiplexedConnection = new MultiplexedPipeConnection(pipeListener, this.multiplexedOutputStream);
                    multiplexedConnection.Closed += new EventHandler(MultiplexedConnectionClosed);
                    lock (connectionLock)
                    {
                        connections.Add(multiplexedConnection.Id, multiplexedConnection);
                    }
                }
                catch (Exception ex)
                {
                    Trace.TraceError("Unable to establish connection: {0}", ex.Message);
                }

            }
            catch (Exception ex)
            {
                Trace.TraceError("Failure accepting client: {0}", ex.Message);
            }
        }