我们使用Windows IoT通过TCPClient连接到网络中的另一个应用程序。现在一切都有效,除了让我们感到困惑的一点。当我们从我们的覆盆子Pi(我猜版本2)拔下网络电缆时,立即停止带有GUI的启动应用程序。当我们将电缆插回时,一段时间后再次启动启动应用程序。
我们使用VS2017构建手臂UWP应用程序。
知道如何防止停止申请吗?
答案 0 :(得分:0)
由于没有您的源代码,我不确定是什么原因引起您的问题。我在raspberry Pi 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;
}
}
答案 1 :(得分:0)
似乎只有在附加调试器时才会出现此问题。目前,此主题已关闭。