2017-10-11 6 views
-1

Windows IoTを使用して、TCPClientを使用してネットワーク内の別のアプリケーションに接続します。すべての作品は現在、私たちを混乱させる1つの点を除いて動作します。私たちのラズベリーPi(私はバージョン2と思われる)からネットワークケーブルを抜くと、GUIを備えたスタートアップアプリケーションが直ちに停止します。ケーブルを差し込むと、しばらくするとスタートアップアプリが再び起動します。windows iotは、ネットワークケーブルが抜かれている場合にUWPアプリケーションを停止します。

VS2017を使用してアームUWPアプリを構築します。

アプリケーションの停止を防ぐにはどうすればよいですか?

+1

ラズベリーPI SEのほうが良いかもしれません。 – jdv

+1

「ラズベリーPI SE」とはどういう意味ですか?私はそれを知らない。それはLinuxですか?そうなら、オプションではありません。 – Trivalik

+1

https://raspberrypi.stackexchange.com/ – jdv

答えて

0

私はあなたの問題を引き起こしているか分かりません。ネットワークケーブルを外すと、ラズベリーパイ3の次の部分のコードをテストしました。UIは停止しません。フォアグラウンドタスクでは、非同期方法はお勧めですAsynchronous programmingを参照してください。

サーバー:

 TcpListener tcpListener = new TcpListener(IPAddress.Any, 6550); 
     tcpListener.Start(); 
     byte[] buffer = new byte[1024]; 

     String data = string.Empty; 

     while (true) 
     { 
      var client = await tcpListener.AcceptTcpClientAsync(); 
      var stream = client.GetStream(); 

      int i = 0; 

      // Loop to receive all the data sent by the client. 
      do 
      { 
       i = await stream.ReadAsync(buffer, 0, buffer.Length); 
       if(i > 0) 
       { 
        // Translate data bytes to a ASCII string. 
        data = System.Text.Encoding.ASCII.GetString(buffer, 0, i); 

        //Display received message 
        txtRServerContent.Text = data; 
       } 

      } while (i > 0); 
     } 

クライアント:

 TcpClient tcpClient = new TcpClient(AddressFamily.InterNetwork); 
     await tcpClient.ConnectAsync(IPAddress.Parse("10.168.197.66"), 14400);    

     // Get a client stream for reading and writing. 
     // Stream stream = client.GetStream(); 
     NetworkStream stream = tcpClient.GetStream(); 

     // Buffer to store the response bytes. 
     byte[] data = new byte[1024]; 

     // String to store the response ASCII representation. 
     String responseData = String.Empty; 

     int count = 0; 

     while (true) 
     { 
      // Read the first batch of the TcpServer response bytes. 
      count = await stream.ReadAsync(data, 0, data.Length); 
      if (count > 0) 
      { 
       responseData = System.Text.Encoding.ASCII.GetString(data, 0, count); 

       //Dispaly responsed message 
       txtClientContent.Text = responseData; 
      } 
     } 
+0

ありがとうございます、私は何が使えるかを見ていきます。ただ一つの質問。未処理の例外も原因である可能性がありますが、私はAppのUnhandledExceptionイベントを既に割り当てました。かつて私はmsgboxを見ていましたが、ネットワークケーブルのプラグを抜いていませんでしたが、私のファイルロガーはアプリケーションが終了するまで消えません。 – Trivalik

0

デバッガが接続されている場合、この問題が発生するだけと思われます。今のところ、このトピックは閉じられています。

関連する問題