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. Вы можете скачать здесь для тестирования.
И результаты.
Хотя это может сработать, я рекомендую не использовать его, кроме как для целей разработки.