public async Task StartAsync(IPEndPoint endPoint) { _listener = _socketFactory(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); _listener.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); unchecked { _listener.IOControl((int)SIO_UDP_CONNRESET, new byte[] { Convert.ToByte(false) }, null); } _listener.Bind(endPoint); _cancellation = new CancellationTokenSource(); await ListenAsync(PreparePacket, _cancellation.Token); }