1

ユニバーサル Windows アプリ (Win 10) は初めてです。カスタム Windows サービス アプリケーションのリモート テストおよび管理コンソールとして機能するコンソール アプリケーションを UWP に移植しようとしています。MainPage.xaml.cs ファイルのどこにソケット リスナーを配置するか (またはどこに配置するか) を示すための確かなサンプル コードが見つからないようです。MSDN の例を、Json を使用して PCL モデル オブジェクトをシリアル化し、サーバーに送信するメソッドに移植することに成功しました。リスナーを正しく処理できないようです。特に非同期の使用に関しては、適切な場所で使用しているとは思いません。基本的に、すでに開いていると言っているため、プロトコル\ポートの使用エラーが発生しています(テストメソッドで投げただけです)。受信した 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();
            }

        }

    }

Microsoft のトレーニング サイトの "C# Hello World" の例から始めた greetingsOutput.text に気付く人もいるかもしれません。

また、別のポートを必要とするJsonオブジェクトでカスタム暗号化やその他の「何か」が発生するため、これにはHTTPを使用しないことを付け加えたいと思います。

XAML と C# (Unleashed) を使用した Universal Windows Apps の本に詳しくなく、自分が何をしているのかについての手がかりさえありません。しかし、私は MVC、Windows サービス、コンソールなどの他のプラットフォームの C# プログラマーとしては熟練しています。「The Gang of Four」の知識に基づいて、エンタープライズ クラスのパターンとプラクティスをしっかりと理解しています。

どんな助けでも大歓迎です。ありがとうございました。

4

1 に答える 1