none
微软新出的mango系统是否支持Upnp(DLNA)协议? RRS feed

  • 问题

  • 我查了一些资料,说是最新的Mango系统已经可以支持了;
    查看了一下Mango的更新点,新增加了一个system.Net.socket,
    但是我在它的protocoltype 定义里面没有发现upnp这个协议,这是怎么回事?
    难道还是要在socket的基础上对upnp协议单独再进行解析啊?
    2011年8月3日 2:16

全部回复

  • Windows Phone 提供了创建和使用 TCP 和 UDP 套接字所需的编程接口。您可以根据应用程序的需要选择要使用的套接字类型。下图显示了一个视图,其中涵盖了在通信会话期间发生在客户端应用程序和服务之间的操作。

    http://msdn.microsoft.com/zh-cn/library/hh202874(v=vs.92).aspx

    套接字通信的顺序图

    下表说明了图中标记的每个操作。

    操作

    TCP

    UDP

    1

    若要通过 TCP 通信,必须在客户端和服务器之间建立连接。连接请求中必须定义客户端要与其进行通信的终结点。这是 Windows Phone 中的异步操作。

    通过 UDP 通信是无连接的,即无需在通信之前创建连接。

    2

    成功建立连接之后,客户端既可通过设置数据缓冲区并将其传递到服务器来向服务器发送数据。TCP 是基于流的协议,从而确保了数据接收顺序与数据发送顺序一致。TCP 协议兼顾传输顺序和可靠性。

    UDP 套接字可以通过创建发送请求并将数据缓冲区传递到服务器来开始通信。无法保证服务器是否可以成功接收数据以及数据的接收顺序。若客户端确定需要此保证,则必须在客户端和服务器上自定义实现此保证。

    3

    客户端可以请求从服务器接收数据。这是一种异步调用,若调用成功,则所产生的回调将包含已发送的数据缓冲区。

    UDP 套接字可以通过“侦听”与该服务相关联的端口上的传入数据并进行相应处理来从服务接收数据。

    4

    只要套接字保持连接,即可重复操作 2 和 3 中的发送和接收模式。

    客户端可以继续发送和接收数据。

    5

    客户端完成通信之后,会调用关闭以通知服务器套接字即将终止。该调用用来确保在套接字断开连接之前能够从服务器接收剩余的数据。

    6

    最终,客户端断开套接字并关闭通信通道。

    7

    此时,没有活动的套接字通道,因此发送到客户端的数据将丢失。

    此时,没有活动的套接字通道,因此发送到客户端的数据将丢失。

    下面是 Windows Phone 上 TCP 和 UDP 套接字的特征比较。

    TCP

    UDP

    传输类型

    基于流

    数据报

    示例使用

    电子邮件、远程管理、文件传输和 Web

    流式多媒体、在线游戏和 Internet 电话服务

    单播

    任意源多播 (ASM)

    源特定多播 (SSM)

    广播

    无连接或已连接

    面向连接

    无连接

    可靠通信

    另请参阅

    如何为 Windows Phone 创建和使用 TCP 套接字客户端应用程序

    如何为 Windows Phone 创建和使用 UDP 套接字客户端应用程序

    如何以 Windows Phone 多播组发送和接收数据


    Xuesong Blog http://www.cnblogs.com/xuesong/ Weibo http://weibo.com/highcedar

    2012年4月30日 4:50
    版主