Кто-нибудь знает, где я могу найти пример кода универсальной частной сети Windows (клиент и сервер)?

Я новичок в универсальных приложениях для Windows (Win 10). Я пытаюсь перенести консольное приложение на UWP, которое выступает в качестве удаленной консоли тестирования и администрирования для пользовательского приложения-службы Windows. Кажется, я не могу найти какого-либо твердого примера кода, демонстрирующего, где разместить слушатель сокета в файле MainPage.xaml.cs (или куда он должен идти). Я успешно перенес пример MSDN в метод, который сериализует объект модели PCL с Json и отправляет его на сервер. Я просто не могу справиться со слушателем правильно. Я не думаю, что я использую его в нужном месте, особенно когда речь идет об использовании асинхронных. У меня возникают ошибки использования протокола \ порта, потому что он в основном говорит, что он уже открыт (я просто бросил его в тестовом методе). Я хотел бы десериализовать полученный ответ Json и использовать его для заполнения списка. Вот пример того, что у меня работает для отправки.

    private async void Pulse(string target)
    {

        if (target == null || target == string.Empty)
        {
            greetingOutput.Text = "No Ip specified";
            return;
        }


        else
        {

            try
            {

                Windows.Networking.Sockets.StreamSocket socket = new Windows.Networking.Sockets.StreamSocket();
                Windows.Networking.HostName serverHost = new Windows.Networking.HostName(target);
                await socket.ConnectAsync(serverHost, serverPort);
                Stream streamOut = socket.OutputStream.AsStreamForWrite();
                StreamWriter writer = new StreamWriter(streamOut);
                HeartBeatPing heartBeatPing = new HeartBeatPing(GetLocalIp(), target);
                string msg = JsonConvert.SerializeObject(heartBeatPing);
                await writer.WriteLineAsync(msg);
                await writer.FlushAsync();
                Stream streamIn = socket.InputStream.AsStreamForRead();
                StreamReader reader = new StreamReader(streamIn);
                string response = await reader.ReadLineAsync();


            }
            catch (Exception xCeption)
            {
                greetingOutput.Text += "\n" + xCeption.ToString();
            }

        }

    }

Некоторые из вас могут заметить из greetingsOutput.text, что я начал с примера "C# Hello World" с учебного сайта Microsoft.

Я также хотел бы добавить, что я не собираюсь использовать для этого какой-либо HTTP, потому что с объектами Json будут происходить какие-то нестандартные операции шифрования и другие "вещи", для которых потребуются отдельные порты.

Я недостаточно глубоко разбираюсь в своих универсальных приложениях для Windows с книгами XAML и C# (Unleashed), чтобы иметь представление о том, что я делаю. Я, однако, хорошо зарекомендовал себя программистом C# на других платформах, таких как MVC, Windows Service, Console и других. У меня есть четкое понимание шаблонов и практик корпоративного класса, основанных на моих знаниях "Банды четырех".

Любая помощь будет принята с благодарностью. Спасибо.

1 ответ

( https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DatagramSocket)

Вот образец. Есть CPP, js, а также cs код в этом примере, я только протестировал cs код. Жаль, что это может помочь вам.

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