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(); } }
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(); } }
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(); } }