CSharpRTMP.Core.NetIO.UDPCarrier.OnEvent C# (CSharp) Method

OnEvent() public method

public OnEvent ( SocketAsyncEventArgs e ) : bool
e System.Net.Sockets.SocketAsyncEventArgs
return bool
        public override bool OnEvent(SocketAsyncEventArgs e)
        {
            if (e.SocketError == SocketError.Success)
            {
                switch (e.LastOperation)
                {
                    case SocketAsyncOperation.ReceiveFrom:
                        if (e.BytesTransferred > 0)
                        {
                            //Debug.WriteLine("receiveFrom:"+e.BytesTransferred);
                            Rx += e.BytesTransferred;
                        }
                        else
                        {
                            Logger.WARN("socket read data error");
                            return false;
                        }
                        Protocol.InputBuffer.Published += (uint)e.BytesTransferred;
                        Protocol.SignalInputData(Protocol.InputBuffer, e.RemoteEndPoint as IPEndPoint);
                        if (ReadEnabled)
                        {
                            SetReceiveBuffer(Protocol.InputBuffer, e, 65535);
                           // Protocol.InputBuffer.SetReceiveBuffer(e, 65535);
                            if (!Socket.ReceiveFromAsync(e) && !OnEvent(e))
                                IOHandlerManager.EnqueueForDelete(this);
                        }
                        else
                        {
                            ReadEnabled = false;
                            e.ReturnPool();
                        }
                        break;
                    case SocketAsyncOperation.Receive:
                        return false;
                    case SocketAsyncOperation.SendTo:
                        return false;
                }
                return true;
            }
            Logger.WARN(e.SocketError.ToString());
            return false;
        }