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();
}
}