SIPSorcery.Net.RTPChannel.ControlSocketReceive C# (CSharp) Méthode

ControlSocketReceive() private méthode

private ControlSocketReceive ( IAsyncResult ar ) : void
ar IAsyncResult
Résultat void
        private void ControlSocketReceive(IAsyncResult ar)
        {
            try
            {
                int bytesRead = _controlSocket.EndReceive(ar);

                if (_controlSocketError == SocketError.Success)
                {
                    _controlLastActivityAt = DateTime.Now;

                    if (bytesRead > 0)
                    {
                        OnControlDataReceived?.Invoke(_controlSocketBuffer.Take(bytesRead).ToArray());
                    }

                    _controlSocket.BeginReceive(_controlSocketBuffer, 0, _controlSocketBuffer.Length, SocketFlags.None, out _controlSocketError, ControlSocketReceive, null);
                }
                else
                {
                    if (!_isClosed)
                    {
                        logger.Warn("A " + _controlSocketError + " occurred.");

                        OnControlSocketDisconnected?.Invoke();
                    }
                }
            }
            catch (Exception excp)
            {
                if (!_isClosed)
                {
                    logger.Error("Exception RTPChannel.ControlSocketReceive. " + excp);

                    OnControlSocketDisconnected?.Invoke();
                }
            }
        }