Consider the following code:
client.Send(data, data.Length, endpoint); byte[] response = client.Receive(ref endpoint);
While, according to
probably the remote host has firewall then couldn't response to request, before send request set the
client.Client.ReceiveTimeout = 5000;
so when the response couldn't get the request you have a exception