原来Silverlight 4中是可以玩UDP的!

Silverlight3中的scoket只支持tcp协议,而对于udp一直以安全原因拒绝支持,但在silverlight4中可以惊喜的发现 System.Net.Sockets下多出了二个类:

UdpAnySourceMulticastClient,UdpSingleSourceMulticastClient

根据msdn官方的解释:

http://msdn.microsoft.com/en-us/library/system.net.sockets(VS.96).aspx

UdpAnySourceMulticastClient :
A client receiver for multicast traffic from any source, also known as Any Source Multicast (ASM) or Internet Standard Multicast (ISM).

UdpSingleSourceMulticastClient:
A client receiver for multicast traffic from a single source, also known as Source Specific Multicast (SSM).

字面意义理解:UdpAnySourceMulticastClient允许客户端从任何源接收数据(即多对多),而UdpSingleSourceMulticastClient可以让客户端从单一源接收数据(即一对多)

知道这个能干什么了吗?

多人(视频)聊天室,单点(视频)广播

早上还到国外的一个silverlight牛人博客上看到了一篇文章给出了演示:

http://www.silverlightplayground.org/post/2010/01/02/Writing-a-server-less-conferencing-client-with-Silverlight-40-UDP-Multicast.aspx

实现了一个简单的多对多文本聊天室,不过需要说明的是:出于安全考虑,silverlight中的udp仍然需要一个服务端用于处理策略文件请求。(这一点跟flash中的udp处理策略很相似,flash 10中的udp也需要先连接到一个Adobe Stratus服务器)

 

udp示例代码下载:

http://www.silverlightplayground.org/assets/sources/SilverlightPlayground.UDPMulticast.zip

 

最后:文中所提示例代码测试了下,发现只能在同一个网段做udp收发,如果需要跨网段/跨防火墙传输,仍然需要自行额外处理。

http://files.cnblogs.com/yjmyzz/CSharp_P2P_Nat.pdf 这是网上找到的一篇讲解P2P原理的文章,感兴趣的朋友可以下载看看

时间: 2024-12-03 03:13:46

原来Silverlight 4中是可以玩UDP的!的相关文章

使用Silverlight Toolkit中的主题(Theme)

在Silverlight Tookit 中提供了大约十种主题,大家可以根据自己的喜好,很容易就在项目中实现 动态换肤效果.当然其官方还推荐了几个制作主题的插件,使用这些 Blend插件可以很方便的生成各 种 风格颜色的主题. 好了,下面开始今天的正文. 首先我们要下载该Tookit并将其中的相应DLL文件:Microsoft.Windows.Controls.Theming.dll加 载到当前的示例中,另外就是相关的theme文件了,我已将10种主题文件放在了这个DEMO的themes 文件夹下

Silverlight 2中多语言支持实现(下)

引言 最近项目要在Silverlight 2应用程序中实现本地化,原以为这个过程非常简单,却没想到实现的时候 一波三折,好在结果还算不错.需求是这样的,用户第一次访问的时候,默认为英文,当用户选择一种显 示语言后,记录在本地,下次用户访问时直接显示已经选择的语言.现在我把整个实现的过程记录下来, 希望对大家有所帮助. 苦笑不得的缺陷 在Silverlight 2中多语言支持实现(上)文章的最后,我们通过修改项目文件中SupportedCultures 来实现了多语言的支持,之所以能够成功,是因为

Silverlight 2中多语言支持实现(上)

引言 最近项目要在Silverlight 2应用程序中实现本地化,原以为这个过程非常简单,却没想到实现的时候 一波三折,好在结果还算不错.需求是这样的,用户第一次访问的时候,默认为英文,当用户选择一种显 示语言后,记录在本地,下次用户访问时直接显示已经选择的语言.现在我把整个实现的过程记录下来, 希望对大家有所帮助. 准备工作 我们发现在Silverlight 2中提供了ResourceManager类,这意味着可以通过资源文件来实现,首先在 Silverlight项目中建立一个文件夹,命名为R

谈谈Silverlight 2中的视觉状态管理 Part2

概述 在WPF和Silverlight中的控件模板支持自定义控件的观感,所谓的外观,指控件的视觉效果:而感觉 则是控件交互的响应性,如在控件上按下鼠标.控件获得焦点等状态的改变.微软在Silverlight 2 Beta 2中引进了一个新的概念视觉状态管理(Visual State Manager),为我们创建交互性的控件模板提供了 极大的方便.接下来我将会用几篇文章来介绍一下Silverlight 2中的视觉状态管理. 本文为该系列第二篇,介绍如何利用Silverlight 2中的视觉状态管理

谈谈Silverlight 2中的视觉状态管理 Part1

概述 在WPF和Silverlight中的控件模板支持自定义控件的观感,所谓的外观,指控件的视觉效果:而感觉 则是控件交互的响应性,如在控件上按下鼠标.控件获得焦点等状态的改变.微软在Silverlight 2 Beta 2中引进了一个新的概念视觉状态管理(Visual State Manager),为我们创建交互性的控件模板提供了 极大的方便.接下来我将会用几篇文章来介绍一下Silverlight 2中的视觉状态管理. 在定义控件时,我们需要严格区分控件的视觉效果和控件的逻辑,这样当我们修改控

Silverlight开发中的疑难杂症-如何自动合并控件的默认样式

在WPF中开发自定义控件时,可以将控件的默认样式放在以"<控件类型 >.Generic.xaml"的形式命名的资源文件中,从而分离各个自定义控件的默认样式的定义 ,减少单个Generic.xaml文件的复杂度. 但是在Silverlight控件开发时,却发现无法采用上面的方法来实现这一效果,尝试了许 久都没有找到其他的办法实现这一效果.郁闷之中,突然想起看一下Silverlight Toolkit中 是如何解决这一问题的,结果惊讶的发现它也是将所有的默认样式都堆积在了Gen

IIS 7 Smooth Streaming技术在Silverlight 3中的应用

微软的全新一代操作系统将IIS 7(Internet Information Services 7)引 入到人们的视线中,作为IIS 6.0的一个升级版本,IIS 7在很多地方都做了改进 ,诸如模块化服务功能,与.NET的无缝集成,简单的操作和部署,改进的管理功 能,以及安全性.过程改进.错误诊断.兼容性等很多新特性,要想全面了解 IIS 7所带来的更多新特性,可以查看"探索用于Windows Vista的Web服务器和 更多内容"一文. IIS 7的很多功能都是作为模块(插件)被集成

领先技术-在 WPF 和 Silverlight 2 中反复使用代码

本专栏基于 Silverlight 2 的预发布版本.文中的所有信息均有可能发生变更. 目录 WPF 与 Silverlight 2 的兼容性 视觉状态管理器简介 共享代码 有关 WPF 应用程序的推论 编写跨平台的 WPF 代码 分析托管代码 获取用于关键代码的策略 示例分析 最终注意事项 在 Silverlight 2 中,您可以使用可扩展应用程序标记语言 (XAML) 来设计和渲染用户界面.与此同时,您可以利用内置的核心 CLR 处理浏览器内的托管代码.这样基于 Web 的 Silverl

如何将OpenXLive添加到Windows Phone 7 Silverlight游戏中

OpenXLive beta版发布已经有一个半月的时间了,得到了开发者和玩家的好 评,目前已经有五款OpenXLive游戏进入Windows Phone Marketplace,其中的 7bomb和Super Hoops都取得了非常骄人的成绩. 当OpenXLive在XNA游戏中大展身手的同时,我们也听到了一些来自 Silverlight程序员的抱怨.在Windows Phone 7中虽然提供了XNA的游戏开发平 台,但相当一部分的游戏是采用Silverlight开发的.毕竟对于显示性能不高的