有谁知道我在哪里可以找到通用Windows专用网络(客户端和服务器)代码示例?

时间:2015-11-25 21:01:07

标签: c# json sockets uwp private-network

我是Universal Windows Apps(Win 10)的新手。我正在尝试将控制台应用程序移植到UWP,作为自定义Windows服务应用程序的远程测试和管理控制台。我似乎无法找到任何可靠的示例代码来演示在MainPage.xaml.cs文件中放置套接字侦听器的位置(或者它应该去的任何地方)。我成功地将MSDN示例移植到一个方法中,该方法使用Json序列化PCL模型对象并将其发送到服务器。我似乎无法正确处理听众。我不认为我在正确的地方使用它,特别是在涉及异步使用时。我有协议\端口使用错误,因为它基本上说它已经打开(我只是在测试方法中抛出它)。我想反序列化收到的Json响应并使用它来填充List。以下是我发送内容的示例。

    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”示例开始。

我还想补充一点,我不打算使用任何HTTP,因为Json对象会发生一些自定义加密和其他“事情”,需要单独的端口。

我对使用XAML和C#(Unleashed)书籍的通用Windows应用程序已经不够了,甚至不知道我在做什么。然而,我是其他平台上经验丰富的C#程序员,如MVC,Windows服务,控制台等。基于我对“四人帮”的了解,我对企业课程模式和实践有了深刻的理解。

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

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

这是一个示例。此示例中有CPPjscs代码,我只测试了cs代码。希望这可以帮到你。