Приложение UWP отказывается получать данные в серверной части P2P

Я пытаюсь создать приложение Windows 10 UWP P2P (UDP), написанное на С++, с использованием сетевой библиотеки, написанной на C (пробовал как enet, так и libuv). Проблема в том, что когда приложение ведет себя как клиент, все работает как положено, но когда я тестирую серверную часть, приложение отказывается получать какие-либо события (подключение в enet и сообщения от libuv). Я попробовал код из простых консольных приложений, и он работает как для enet, так и для libuv! Также я добавил правила в брандмауэр, чтобы разрешить все через порт по умолчанию.

У меня вопрос, нужно ли делать дополнительные настройки приложения UWP для получения?


person Gabriel kotev    schedule 04.01.2017    source источник


Ответы (1)


Согласно вашему описанию на вашем один и тот же поток в MSDN сервер и клиент находятся на одном устройстве. Согласно примечанию DatagramSocket официальный образец:

Сетевое взаимодействие с использованием IP-адреса замыкания на себя обычно нельзя использовать для межпроцессного взаимодействия между приложением универсальной платформы Windows (UWP) и другим процессом (другим приложением UWP или настольным приложением), так как это ограничено сетевой изоляцией.

Мы не можем связывать приложение uwp с другими приложениями на одном компьютере. Даже с исключением петли. Это как дизайн. Если вы используете консольный проект С# в качестве сервера и приложение uwp в качестве клиента, они могут успешно взаимодействовать. Но для этого требуются специальные шаги (например, запуск консоли от имени администратора), чтобы она работала, что может привести к удовлетворению требований. Подробности вы можете найти в этой теме.

person Sunteen Wu    schedule 09.01.2017
comment
Спасибо, это действительно проблема, но была еще одна проблема, что я не добавил возможности Интернета (клиент и сервер). - person Gabriel kotev; 10.01.2017