Aegis.Network.SessionMethodAsyncResult.Socket_Send C# (CSharp) Method

Socket_Send() private method

private Socket_Send ( IAsyncResult ar ) : void
ar IAsyncResult
return void
        private void Socket_Send(IAsyncResult ar)
        {
            try
            {
                lock (_session)
                {
                    if (_session.Socket == null)
                        return;

                    int transBytes = _session.Socket.EndSend(ar);
                    NetworkSendToken token = (NetworkSendToken)ar.AsyncState;

                    if (token != null)
                    {
                        token.Buffer.Read(transBytes);
                        if (token.Buffer.ReadableSize == 0)
                            token.CompletionAction();
                    }
                }
            }
            catch (SocketException)
            {
            }
            catch (ArgumentException)
            {
            }
            catch (Exception e)
            {
                Logger.Err(LogMask.Aegis, e.ToString());
            }
        }