原来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牛人博客上看到了一篇文章给出了演示:
实现了一个简单的多对多文本聊天室,不过需要说明的是:出于安全考虑,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原理的文章,感兴趣的朋友可以下载看看
- mysql5.7 column cannot be null
- 区块链大热 价值近20万的Matrix.io被启用
- 比特币科普之什么是区块高度?
- 如何正确并快速理解MapReduce
- mysqldump的简单使用
- mac:在当前文件夹打开terminal终端
- 斯诺登研发黑客警报App上架 监测功能引发争议
- JMS + jboss EAP 6.2 示例
- Maven Compilation error [package org.testng.annotations does not exist]
- 查看jar包的jdk版本并降级
- ejb3: message drive bean(MDB)示例
- java提示找不到或无法加载主类
- 学Java有什么好方法?刻苦学技术让我最终成为自信的码农
- expect+scp传输文件发现文件丢失
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Yii框架分页技术实例分析
- PHP命名空间与自动加载机制的基础介绍
- Flutter下Android Studio配置gradle的方法
- Flutter 实现整个App变为灰色的方法示例
- Android studio开发小型对话机器人app(实例代码)
- php中的钩子理解及应用实例分析
- AndroidX下使用Activity和Fragment的变化详解
- PHP Primary script unknown 解决方法总结
- PHP如何将图片文件上传到另外一台服务器上
- android实现滑动解锁
- laravel框架模板之公共模板、继承、包含实现方法分析
- Android项目实战之百度地图地点签到功能
- PHP Redis扩展无法加载的问题解决方法
- PHP 文件上传限制问题
- Flutter permission_handler 权限插件的使用详解