コード例 #1
0
ファイル: TcpConnection.cs プロジェクト: tone81/EventStore
        private void InitSocket(Socket socket)
        {
            InitConnectionBase(socket);
            //_log.Info("TcpConnection::InitSocket[{0}, L{1}]", RemoteEndPoint, LocalEndPoint);
            using (_sendingLock.Acquire())
            {
                _socket = socket;
                try
                {
                    socket.NoDelay = true;
                }
                catch (ObjectDisposedException)
                {
                    CloseInternal(SocketError.Shutdown, "Socket disposed.");
                    _socket = null;
                    return;
                }

                var receiveSocketArgs = SocketArgsPool.Get();
                _receiveSocketArgs = receiveSocketArgs;
                _receiveSocketArgs.AcceptSocket = socket;
                _receiveSocketArgs.Completed   += OnReceiveAsyncCompleted;

                var sendSocketArgs = SocketArgsPool.Get();
                _sendSocketArgs = sendSocketArgs;
                _sendSocketArgs.AcceptSocket = socket;
                _sendSocketArgs.Completed   += OnSendAsyncCompleted;
            }
            StartReceive();
            TrySend();
        }
コード例 #2
0
ファイル: TcpConnection.cs プロジェクト: eleks/EventStore
        private void InitSocket(Socket socket)
        {
            //Console.WriteLine("TcpConnection::InitSocket({0})", socket.RemoteEndPoint);
            base.InitSocket(socket, EffectiveEndPoint);
            lock (_sendingLock)
            {
                _socket = socket;
                try
                {
                    socket.NoDelay = true;
                    //socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, TcpConfiguration.SocketBufferSize);
                    //socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendBuffer, TcpConfiguration.SocketBufferSize);
                }
                catch (ObjectDisposedException)
                {
                    CloseInternal(SocketError.Shutdown);
                    _socket = null;
                    return;
                }

                _receiveSocketArgs = SocketArgsPool.Get();
                _receiveSocketArgs.AcceptSocket = socket;
                _receiveSocketArgs.Completed   += OnReceiveAsyncCompleted;

                _sendSocketArgs = SocketArgsPool.Get();
                _sendSocketArgs.AcceptSocket = socket;
                _sendSocketArgs.Completed   += OnSendAsyncCompleted;
            }
            StartReceive();
        }