WEB开发网
开发学院WEB开发ASP.NET 稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的... 阅读

稳扎稳打Silverlight(54) - 4.0通信之对UDP协议的支持

 2010-10-12 12:30:02 来源:WEB开发网   
核心提示:介绍Silverlight 4.0 对 UDP 协议的支持:* UdpAnySourceMulticastClient - 一个发送信息到多播组并从任意源接收多播信息的客户端,即 ASM 客户端在线DEMOhttp://www.cnblogs.com/webabcd/archive/2010/08/09/1795417

介绍

Silverlight 4.0 对 UDP 协议的支持:

* UdpAnySourceMulticastClient - 一个发送信息到多播组并从任意源接收多播信息的客户端,即 ASM 客户端

在线DEMO

http://www.cnblogs.com/webabcd/archive/2010/08/09/1795417.html

示例

演示如何通过 UdpAnySourceMulticastClient 实现 ASM

1、服务端

Form1.cs

代码

// 启动多播的安全策略服务
private void LaunchMulticastPolicyServer()
{
    /*
     * Silverlight 程序加入多播组之前,会通过 UDP 端口 9430 发送初始消息到多播组,然后服务端返回相应的安全策略(详见文档)
     * 为了方便下发安全策略,可以引用 Microsoft.Silverlight.PolicyServers.dll 程序集,其封装了相关的方法
     */

    // 本例的安全策略配置结果为:授权通过 UDP 端口 3003 问多播组 224.0.0.1,授权通过 UDP 端口 3006 问多播组 224.0.0.1
    MulticastPolicyConfiguration config = new MulticastPolicyConfiguration();
    config.AnySourceConfiguration.Add("*", new MulticastResource(IPAddress.Parse("224.0.0.1"), 3006)); // 配置 ASM 的安全策略

    MulticastPolicyServer server = new MulticastPolicyServer(config);
    server.Start();

    ShowMessage("多播的安全策略服务已启动");
}

2、客户端

UdpPacketEventArgs.cs

代码

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace Silverlight40.Communication
{
    public class UdpPacketEventArgs : EventArgs
    {
        // UDP 包的内容
        public string Message { get; set; }
        // UDP 包的来源的 IPEndPoint
        public IPEndPoint Source { get; set; }

        public UdpPacketEventArgs(byte[] data, IPEndPoint source)
        {
            this.Message = System.Text.Encoding.UTF8.GetString(data, 0, data.Length);
            this.Source = source;
        }
    }
}

1 2 3 4  下一页

Tags:稳扎稳打 Silverlight 通信

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接