Определить, подключен ли Сокет UDP, не используя Try-Catch
Приветствую.
Есть конструкция:
IPEndPoint Address = new IPEndPoint(IPAddress.Parse(Ip), (int)Port);
Socket = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Dgram, ProtocolType.Udp);
socket.Connect(Address);
//Send
byte[] recvData = new byte[1400];
int recv = socket.Receive(recvData);
Если удалённый сервер выключен, кидает исключение на строчки int recv = socket.Receive(recvData);
:
Необработанное исключение типа "System.Net.Sockets.SocketException" в System.dll
Дополнительные сведения: Удаленный хост принудительно разорвал существующее подключение.
Каким образом можно избежать исключение, не используя конструкцию Try-Catch (влияет на производительность в моем случае).
Пробовал такое, но не работает:
bool SocketConnected(Socket s)
{
bool part1 = s.Poll(1000, SelectMode.SelectRead);
bool part2 = (s.Available == 0);
if (part1 && part2)
return false;
else
return true;
}