Рассмотрим следующий код:
client.Send(data, data.Length, endpoint);
byte[] response = client.Receive(ref endpoint);
Хотя, согласно WireShark (сетевой сниффер), удаленный хост отвечает данными, приложение здесь просто ждет данных вечно ... оно по какой-то причине не получает ответа от удаленного хоста.
Есть идеи?
Вы когда-нибудь это решали?
Это было 10 лет назад, насколько я помню, я использовал решение @ ageektrapped и привык к клиентам. В наши дни я стараюсь избегать прямого использования udp / tcp и предпочитаю такие решения, как ZeroMQ / NetMQ в сочетании с буферами протокола.





Вероятно, вы захотите настроить два UdpClient: один для прослушивания, другой для отправки.
Для принимающего UdpClient используйте конструктор, который принимает порт.
возможно, на удаленном хосте есть брандмауэр, тогда он не может ответить на запрос, перед отправкой запроса установите
client.Client.ReceiveTimeout = 5000;
поэтому, когда ответ не может получить запрос, у вас есть исключение
Вы вызываете client.Connect ()? Если это так, он будет принимать данные только от конечной точки, указанной в методе Connect.