C# 流套接字读取器接收0字节,应用程序崩溃(windows phone 8)

C# 流套接字读取器接收0字节,应用程序崩溃(windows phone 8),c#,windows-phone-8,windows-phone,C#,Windows Phone 8,Windows Phone,如何处理来自读取器的空数据0字节?当我的应用程序接收到空数据时,它会一直强制关闭。这是我的密码: int i = 0; private async void ReceiveData() { if (socket != null) { uint s = await dataReader.LoadAsync(1); string data = dataReader.ReadString(s);

如何处理来自读取器的空数据0字节?当我的应用程序接收到空数据时,它会一直强制关闭。这是我的密码:

int i = 0;

    private async void ReceiveData()
    {
        if (socket != null)
        {
            uint s = await dataReader.LoadAsync(1);
            string data = dataReader.ReadString(s);    
            Debug.WriteLine(s);
            if (data=="X")
            {
                i++;    
            }
            if (data == null)
            {
                // what should I put here?
            }
            txtMessage.Text = i.ToString();
        }
    }
当我的应用程序接收到空数据并突然被迫关闭时,我遇到了麻烦。当我的应用程序收到一个空数据并等待下一个传入数据时,你知道该放什么代码吗

在这种情况下,我希望dataReader继续读取传入数据,即使该数据为空,也不接收任何数据,并等待它获取下一个传入数据。你会怎么做


谢谢

要重复操作,请使用while循环


但是,如果从套接字流中读取零字节,则表示套接字已关闭,您应该停止读取。

什么是dataReader?异常是什么样子的?请发布完整的堆栈trace.dataReader=newdatareadersocket.InputStream;这听起来不像是我熟悉的标准类-名称空间是什么?它是windows.storage.streamsgoot,谢谢。看起来你想检查s是否为0。好了,我现在明白为什么我的应用程序崩溃了。你能给我一些提示我应该把while循环放在哪里吗?while循环应该围绕所有你想重复的语句。