带有 windows phone 7 的协议缓冲网络

Posted

技术标签:

【中文标题】带有 windows phone 7 的协议缓冲网络【英文标题】:Protocol buffer net with windows phone 7 【发布时间】:2010-07-13 09:27:36 【问题描述】:

我正在尝试从 Windows Phone 7 应用程序的协议缓冲区格式的服务器下载响应。

我正在尝试使用 WebClient 执行此操作,我的问题如下。

WebClient只有两种下载方式

DownloadStringAsync(new Uri(url));

OpenReadAsync(new Uri(url));

但是这两种方法都不好检索响应,因为响应大小应该有16个十六进制字符(080118CBDDF0E104),但是这两种方法得到的字符串和流的大小只有8。

所以我正在寻找一种方法来解决我的问题。 我找到了一个 C#

public static T DownloadProto<T>(this WebClient client, string address)

   byte[] data = client.DownloadData(address);
   using (var ms = new MemoryStream(data))
   
      return Serializer.Deserialize<T>(ms);
   

开启 http://code.google.com/p/protobuf-net/source/browse/trunk/BasicHttp/HttpClient/ProtoWebClient.cs?spec=svn340&r=340

但此方法已被删除或尚未在 Windows Phone 7 开发工具包上实现。

【问题讨论】:

确实;我根本没有时间查看“v2”的套接字/等方面,它是在电话 7 上工作的 v2。但是,这里真正的问题是:什么数据来自网络?如果你有一个小而完整的例子我可以玩,我很可能可以用它来帮助完成这个区域...... 但是;这里的主要问题似乎是将完整的片段发送给客户端 - 这应该与实际的序列化引擎无关......? 【参考方案1】:

你是如何从流中读取的?

如果您将其作为字符串读取,那么它可能会读取每个字符两个字节 - 而不是使用

var buf = new byte[16];
var actual = stream.Read(buf, 0, buf.Length);

【讨论】:

以上是关于带有 windows phone 7 的协议缓冲网络的主要内容,如果未能解决你的问题,请参考以下文章

c# Windows Phone 7 中的 Facebook 聊天客户端

带有通知的 Windows Phone 8 后台任务

带有 AngularJS 的 Windows Phone 全景图

带有地图控制 Windows Phone 的内容对话框

发送带有证书的 Windows Phone 推送通知?

带有图像标签的 Binging 字符串 - Windows Phone 8.1 UWP