diff --git a/src/DTLS.Net/Server.cs b/src/DTLS.Net/Server.cs index 318f7db..0a962bc 100644 --- a/src/DTLS.Net/Server.cs +++ b/src/DTLS.Net/Server.cs @@ -406,7 +406,12 @@ private void ReceiveCallback(object sender, SocketAsyncEventArgs e) remoteEndPoint = new IPEndPoint(IPAddress.IPv6Any, 0); e.RemoteEndPoint = remoteEndPoint; e.SetBuffer(0, 4096); - socket.ReceiveFromAsync(e); + bool pending = socket.ReceiveFromAsync(e); + if (!pending) + { + // If ReceiveFromAsync returns false, the callback will not be triggered automatically so we must call it ourselves. + ReceiveCallback(sender, e); + } } } }