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