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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам