В моем приложении Xamarin.Forms для UWP у меня есть следующий простой код для получения дейтаграммы UDP:
using (var udpClient = new UdpClient(port))
{
var datagram = await udpClient.ReceiveAsync();
}
В целях тестирования мне нужно запустить это приложение из Visual Studio и с того же компьютера.отправить дейтаграмму в приложение с какой-либо (не UWP) терминальной программой.Но это не работает - ReceiveAsync()
никогда не возвращается.
Я знаю, что UWP по умолчанию запрещает обратную связь, но для отладки это должно быть возможно в соответствии с https://stackoverflow.com/a/44990978/487356.
В UWPВ проекте я включил функции «Интернет (клиент)», «Интернет (клиент и сервер)» и «Частные сети (клиент и сервер)».Также я включил «Разрешить петлю локальной сети» в настройках отладки.И с помощью инструмента CheckNetIsolation я смог убедиться, что мое приложение занесено в список LoopbackExempt.Так что все это выглядит хорошо, но я все еще не могу получить дейтаграммы UDP.
Есть ли что-то еще, что мне нужно сделать, чтобы это работало?
Редактировать Читая немного больше об этом, похоже, что получение данных с той же машины запрещено, даже если приложение указано в списке LoopbackExempts, см. Проблемы с UDP в Windows 10. UWP .Это действительно раздражает!
Так что я думаю, что последующим вопросом будет: Какая хорошая (предпочтительно без соединения) альтернатива для IPC?