Socket Communication на UWP(универсальная платформа Windows)

Я хочу реализовать программы на основе UWP, а другие программы на C# пытаются обмениваться данными с Soket на одном ПК (Windows 10 Pro).

Я попытался создать модуль связи UDP, используя класс DatagramSocket, и модуль связи TCP, используя класс StreamSocket ( https://msdn.microsoft.com/ko-kr/windows/uwp/networking/sockets), и кажется, что модуль не работает должным образом,

В примере программы Windows UWP и на некоторых форумах разработчиков я видел утверждение, что невозможно соединить сокет между другими программами на одном устройстве.

Мне интересно, правильно ли я это понял.

Кроме того, если это правильно, вы бы порекомендовали другие способы решения этой проблемы?

Спасибо за прочтение.

1 ответ

Решение

Я видел утверждение, что это невозможно, что сокет связи между другими программами на одном устройстве

Это правильно. Согласно примечанию DatagramSocket официального образца:

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

Мы не можем связать приложение uwp с другими приложениями на одном компьютере.

Кроме того, если это правильно, вы бы порекомендовали другие способы решения этой проблемы?

Тестируя на моей стороне, если вы используете консольный проект aC# в качестве сервера и приложение uwp в качестве клиента, они могут успешно обмениваться данными как с StreamSocket а также DatagGramSocket, Но, следуя специальным шагам, нужно обратить внимание, чтобы все заработало.

  • Убедитесь, что возможности Интернета (клиент и сервер) и частного Интернета (клиент и сервер) включены.

  • Запустите серверную часть от имени администратора.

  • Разрешите доступ к сети, поддерживаемый Windows, при запуске сервера.

Я написал демо, которое содержит серверную и клиентскую части UDP и TCP. Вы можете скачать здесь для тестирования.

И результаты.

Хотя это может сработать, я рекомендую не использовать его, кроме как для целей разработки.

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