Я использую класс C # UdpClient
для сетей UDP. Существует один UdpClient
объект, связанный с фиксированным локальным портом, но не с какой-либо удаленной конечной точкой, поскольку он должен иметь возможность отправлять / получать в / из нескольких разных конечных точек.
У меня есть два потока: один для отправки, один для получения. Теперь, когда я отправляю данные в конечную точку, которая существует, но не прослушивает этот порт, я ожидаю SocketException
. И я получаю один. К сожалению, это не мой вызов Send
, который возвращает исключение, а вызов Receive
. Поэтому в моем потоке отправки я отправляю данные в «недопустимую» конечную точку, и мой поток получения получает исключение. К сожалению, в тот момент я, конечно, понятия не имел, какая конечная точка привела к возникновению этого исключения.
Сохранение конечной точки перед отправкой и последующий доступ к ней в получающем потоке - просто ошибка состояния гонки, ожидающая наступления.
К сожалению, SocketException
не дает мне конечную точку, вызвавшую ошибку.
Есть идеи? Можно ли как-то сделать исключение в потоке-отправителе?
Помощь очень ценится.