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