Beispiel #1
0
        private void FinishSend(object sender, SocketAsyncEventArgs e)
        {
            var session = e.UserToken as TcpSession ?? throw new ArgumentNullException(nameof(e.UserToken));

            var sentEventArgs = new DataSentEventArgs(session, new ArraySegment <byte>(e.Buffer, e.Offset, e.BytesTransferred));

            OnDataSent(sentEventArgs);
            session.OnDataSent(sentEventArgs);

            e.Completed -= FinishSend;
            e.SetBuffer(null, 0, 0);
            e.UserToken = null;
            socketEventPool.CheckIn(e);
        }
Beispiel #2
0
 protected virtual void OnDataSent(DataSentEventArgs e)
 {
     DataSent?.Invoke(this, e);
 }
Beispiel #3
0
 internal virtual void OnDataSent(DataSentEventArgs e) => DataSent?.Invoke(this, e);