微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

UdpAnySourceMulticastClientUdpSingleSourceMulticastClient

根据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原理的文章,感兴趣的朋友可以下载看看

作者: 菩提树下的杨过
出处: http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐