zoukankan      html  css  js  c++  java
  • 简单解决SL多播授权

    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; 
    
     byte groupAddressLength; 
    
     byte[applicationOriginUriLength] applicationOriginUri; 
    
     byte[groupAddressLength] groupAddress; 
    
    } 

    如果确认应用程序源URI有权加入申请的多播组,那么把消息类型的第5个字节修改为1,表示通过授权,作为响应数据即可:

    以下代码测试通过:

     static UdpClient client = null;
            static void Main(string[] args)
            {
                client = new UdpClient(9430);//SL客户端客户端请求授权时,会向9430端口 验证授权
                client.BeginReceive(ReceiveCallback, null);
                Console.Read();
            }
    
            static void ReceiveCallback(IAsyncResult result)
            {
                IPEndPoint remoteEP = null;
                byte[] Announcement = client.EndReceive(result, ref remoteEP);//接收到公告
    
                if (result.IsCompleted)
                {
                    Console.WriteLine(remoteEP.Address.ToString() + ":" + remoteEP.Port);
                    Announcement[4] = 1;//第5个字节0表示公告,1表示授权。其他数据不变,将消息改为授权作为响应
                    client.BeginSend(Announcement, Announcement.Length,remoteEP, SendCallback, null);
                    Console.WriteLine("Done");
                }
            }
    
            static void SendCallback(IAsyncResult Asyncresult)
            {
                client.EndSend(Asyncresult);
                if (Asyncresult.IsCompleted)
                {
                    Console.WriteLine("Sended");
                }
            }


    这样处理后,可以使多播应用程序的调试变得更简单。

  • 相关阅读:
    拓扑排序笔记
    最小生成树——垃圾佬抓宠物
    次小生成树
    关于 海平面上升 与 fold的毒瘤题(easy) 的思考
    看正月点灯笼老师的笔记—01背包
    欧拉图的判定欧拉路的求法
    离散实验——关系闭包运算
    Floyd 求最短路
    离散实验——二元关系及其性质
    最小生成树
  • 原文地址:https://www.cnblogs.com/langu/p/3126804.html
Copyright © 2011-2022 走看看