Aegis.Network.UDPClient.SocketEvent_Receive C# (CSharp) Method

SocketEvent_Receive() private method

private SocketEvent_Receive ( IAsyncResult ar ) : void
ar IAsyncResult
return void
        private void SocketEvent_Receive(IAsyncResult ar)
        {
            try
            {
                lock (this)
                {
                    EndPoint ep = new IPEndPoint(IPAddress.Any, 0);
                    var socket = _socket;
                    int transBytes = socket?.EndReceiveFrom(ar, ref ep) ?? -1;
                    if (transBytes == -1)
                        return;

                    EventRead?.Invoke(new IOEventResult(ep, IOEventType.Read, _receivedBuffer, 0, transBytes, 0));

                    WaitForReceive();
                }
            }
            catch (Exception e)
            {
                Logger.Err(LogMask.Aegis, e.ToString());
                Close();
            }
        }