Beispiel #1
0
        private void ReceiveData(IAsyncResult result)
        {
            var resultWrapper = (Client)result.AsyncState;

            try
            {
                var size = resultWrapper.EndRead(result);
                m_CurrentlyReceived += size;

                if (m_CurrentlyReceived >= HEADER_SIZE)
                {
                    AriesHeader Header = ReadAriesHeader((byte[])resultWrapper.Buffer.Clone());
                    PacketType = Header.PacketType;
                    PacketSize = Header.PacketSize;

                    if (m_CurrentlyReceived >= PacketSize)
                    {
                        ProcessBuffer(resultWrapper);

                        resultWrapper.BeginRead(ReceiveData);
                    }
                }
                else
                {
                    resultWrapper.BeginRead(ReceiveData);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Disconnected.InvokeSafely(this, resultWrapper);
                resultWrapper.CloseAndDisposeSslStream();
            }
        }
Beispiel #2
0
        private void EndAuthenticate(IAsyncResult result)
        {
            var resultWrapper = (Client)result.AsyncState;

            try
            {
                try
                {
                    resultWrapper.EndAuthenticateAsServer(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);

                    if (ex.InnerException != null)
                    {
                        Console.WriteLine(ex.InnerException);
                    }
                }

                if (resultWrapper.IsAuthenticated())
                {
                    Connected.InvokeSafely(this, resultWrapper);
                    if (resultWrapper.CanRead())
                    {
                        //resultWrapper.CreateBuffer(5);
                        resultWrapper.CreateBuffer(BUFFER_SIZE);
                        resultWrapper.BeginRead(ReceiveData);
                    }
                }
                else
                {
                    Disconnected.InvokeSafely(this, resultWrapper);
                    resultWrapper.CloseAndDisposeSslStream();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Disconnected.InvokeSafely(this, resultWrapper);
                resultWrapper.CloseAndDisposeSslStream();
            }
        }
Beispiel #3
0
        private void AcceptConnections(IAsyncResult result)
        {
            var resultWrapper = (Client)result.AsyncState;

            try
            {
                resultWrapper.ReplaceSslStream(result, m_Socket);
                resultWrapper.BeginAuthenticateAsServer(EndAuthenticate);

                m_Socket.BeginAccept(AcceptConnections, new Client());
            }
            catch (Exception e)
            {
                Console.WriteLine(e);

                if (e.InnerException != null)
                {
                    Console.WriteLine(e.InnerException);
                }

                Disconnected.InvokeSafely(this, resultWrapper);
                resultWrapper.CloseAndDisposeSslStream();
            }
        }