From 9655b95898864b151ae5de68dc6d48c8e335d3c5 Mon Sep 17 00:00:00 2001 From: Parnic Date: Wed, 20 Feb 2019 15:08:33 -0600 Subject: [PATCH] Time out if no local units are found in 1 second --- FindUnits.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/FindUnits.cs b/FindUnits.cs index d2f9c6a..b6ce493 100644 --- a/FindUnits.cs +++ b/FindUnits.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Threading.Tasks; @@ -28,11 +29,14 @@ namespace ScreenLogicConnect { await udpClient.SendAsync(broadcastData, broadcastData.Length, new IPEndPoint(IPAddress.Broadcast, multicastPort)); - var buf = await udpClient.ReceiveAsync(); - var findServerResponse = new EasyTouchUnit(buf); - if (findServerResponse.isValid) + var buf = await udpClient.ReceiveAsync().TimeoutAfter(TimeSpan.FromSeconds(1)); + if (buf != null) { - units.Add(findServerResponse); + var findServerResponse = new EasyTouchUnit(buf); + if (findServerResponse.isValid) + { + units.Add(findServerResponse); + } } }