diff --git a/FastGithub.Dns/DnsServerHostedService.cs b/FastGithub.Dns/DnsServerHostedService.cs index 27cc65e..034605e 100644 --- a/FastGithub.Dns/DnsServerHostedService.cs +++ b/FastGithub.Dns/DnsServerHostedService.cs @@ -127,10 +127,17 @@ namespace FastGithub.Dns var remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); while (stoppingToken.IsCancellationRequested == false) { - var result = await this.socket.ReceiveFromAsync(this.buffer, SocketFlags.None, remoteEndPoint); - var datas = new byte[result.ReceivedBytes]; - this.buffer.AsSpan(0, datas.Length).CopyTo(datas); - this.HandleRequestAsync(datas, result.RemoteEndPoint, stoppingToken); + try + { + var result = await this.socket.ReceiveFromAsync(this.buffer, SocketFlags.None, remoteEndPoint); + var datas = new byte[result.ReceivedBytes]; + this.buffer.AsSpan(0, datas.Length).CopyTo(datas); + this.HandleRequestAsync(datas, result.RemoteEndPoint, stoppingToken); + } + catch (SocketException ex) when (ex.SocketErrorCode == SocketError.OperationAborted) + { + break; + } } }