摘要: 原文的描述比较拗口,本人经过测试验证最多需要21秒。测试后的简单理解如下,最多发送3次公告,前两次发送公告后最多等待3秒,第三次发送公告后最多等待12秒。第一次发送公告后3秒未获得授权会等3秒。按时间顺序描述如下,假设第3次发送公告后还未获得授权:第0秒发送第一次公告,第3秒后未获得授权,等待3秒第6秒时发送第二次公告,等待3秒,第9秒未获得授权,发送第三次公告,等待12秒,第21秒未获得授权,进入60秒避退期,即接下来的60秒来不能重复发送公告。msdn原文描述如下:如果 Silverlight 运行时在 3 秒内未收到匹配的授权消息,则 Silverlight 运行时将假定公告已删除并且将 阅读全文
posted @ 2013-06-08 15:36 二师弟tl 阅读(224) 评论(0) 推荐(0) 编辑
摘要: SL特定源多播和任意源多播,加入组前,需要获得当前域的9430端口的授权。请求授权的消息叫“公告”,响应的消息叫“授权”。分别用0和1表示。公告和身份验证消息的格式如下所示: struct SilverlightPolicyMessage { byte[3] header = "SL\0"; byte version = 1; byte messageType = {Announcement: 0, Authorization: 1}; byte[4] messageId; byte[2] port; byte[2] applicationOriginUriLength; 阅读全文
posted @ 2013-06-08 15:28 二师弟tl 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 相同点:发送消息的client实例都不用绑定ip终结点,发布的目标网络(广播或者组)都需要指定明确的端口,接收消息的client实例仅需要绑定相同的端口,如果要指定IP的话只能指定任意Ip,即0.0.0.0,另外可以指定本机IP但是会数不到消息,可以接收来自任意远程IP和任意端口的数据包,不同点:组播发送的目标IP地址为:明确的组播地址,广播发送的目标IP地址为:广播地址,组播的接收端client实例需要加入组播组。解释:1、接收端并不是直接从发送端接收消息,而是接收来自广播或组播组的消息2、发送到广播或组播组的端口需要与接收端的端口一致3、ref remoteIP 是获取的消息的来源IP,接 阅读全文
posted @ 2013-06-08 11:25 二师弟tl 阅读(2543) 评论(0) 推荐(0) 编辑
摘要: 发送组播消息:static void Main(string[] args) { UdpClient udpClient = new UdpClient(); IPEndPoint broadcastIp = new IPEndPoint(IPAddress.Parse("224.0.0.122"), 4533); int i = 0; while (true) { Console.WriteLine(i); b... 阅读全文
posted @ 2013-06-08 11:17 二师弟tl 阅读(974) 评论(0) 推荐(1) 编辑
摘要: 发送消息: static void Main(string[] args) { UdpClient udpClient = new UdpClient(AddressFamily.InterNetwork); IPEndPoint broadcastIp = new IPEndPoint(IPAddress.Broadcast, 4534); int i = 0; while (true) { i++; byte... 阅读全文
posted @ 2013-06-08 11:07 二师弟tl 阅读(1195) 评论(0) 推荐(0) 编辑