【问题标题】:Reading image using datareader class through socket stream通过套接字流使用 datareader 类读取图像
【发布时间】:2016-11-06 23:42:08
【问题描述】:

我正在 Windows mobile 和 Android 上创建一个应用程序,以通过套接字流在它们之间建立数据传输。我在 Android 中完成了编码。我将图像转换为android中的字节数组并发送它。

我不知道如何在 Windows 10 移动版的 DataReader 类中读取它。如果有什么好的例子,请告诉我

【问题讨论】:

    标签: android windows sockets


    【解决方案1】:

    这是包含许多代码示例的 MSFT UWP 示例的链接,这将很有帮助。 https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DataReaderWriter

    我使用的 DataReader 的代码 sn-p:

    var reader = new DataReader(socket.InputStream);
    while (true)
    {
     uint readLength = await reader.LoadAsync(sizeof(uint));
    if (readLength < sizeof(uint))
    {
    break;
    }
    uint currentLength = reader.ReadUInt32();
    readLength = await reader.LoadAsync(currentLength);
    if (readLength < currentLength)
    {
    break;
    }
    string message = reader.ReadString(currentLength);
    }
    
    reader.DetachStream();
    

    但是,请在 android 端进行检查,因为它与流的正常读写不同。数据阅读器期望消息之前的消息长度。确保也检查字节序。这是我在 C# 中使用的可能有用的 sn-p。

    try
    {
        int len = data.Length;
        byte[] lenByte = BitConverter.GetBytes(data.Length);
                    if (BitConverter.IsLittleEndian)
                    {
                        Array.Reverse(lenByte);
                    }           
                   foreach (byte b in lenByte)
                    { outStream.WriteByte(b); }
    
                   foreach (byte b in data) outStream.WriteByte(b);
                     Console.WriteLine("Message sent");
                    }
                catch (Exception e)
                {
                   Console.WriteLine(e.Message) ;
                }
    

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 2018-06-04
      • 1970-01-01
      • 2012-08-17
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      相关资源
      最近更新 更多