惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
V
Visual Studio Blog
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
Vercel News
Vercel News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
D
DataBreaches.Net
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
The Cloudflare Blog
宝玉的分享
宝玉的分享
V
V2EX
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 斌哥

ORACLE 10g下载地址 ORACLE 10g 64位下载地址 使用poi读写excel文件 安装oracle,创建并启动oracle实例(创建克隆数据库,进度条在45%)就进行不下去了 利用Oracle分析函数实现多行数据合并为一行 fastreport 3的安装步骤 修改windows server 2008 时间和日期格式 IIS配置后显示错误 SQL server2000数据库备份和还原语句 SQL Server 2008 下载地址(微软官方网站) 福州 Flex 瑞研QQ群:138571223 RIADEV-福州 please verify the preference field with the prompt:Tomcat JDK name flex论坛 使用SQL Server 2008提供的表分区向导 Flex打印 Microsoft Visual Studio 2010 旗舰版下载地址 下载最新Silverlight 5 Beta客户端 oracle数据库导入导出命令! 用C#创建Windows服务(Windows Services) Microsoft Silverlight 4 Tools for Visual Studio 2010 下载地址
Socket通信:服务端发送安全策略到flash(c#)
斌哥 · 2011-01-28 · via 博客园 - 斌哥

 

转载

在Adobe Flash Player升级到9.0.124后,由于安全策略的更改,使得在socket或xmlsocket的应用里,原先如用http方式加载安全策略的手段不能继续使用了,类似此类应用必须使用xmlsocket://方式来提供安全策略。flashplayer的安全策略检测过程如下:

1,首先检测目标服务器的843端口是否提供安全策略

2,如果1没有检测到策略,则检测actionscript是否使用了

Security.loadPolicyFile(xmlsocket://)

手段提供安全策略,如果还没检测到,则使用第3步检测

3,检测目标服务器目标端口是否提供安全策略

C#代码如下,编译环境VS2008 + .NET framework 3.5

using System; 

using System.Text; 

using System.Net; 
using System.Net.Sockets; 
using System.Threading; 
using System.Collections; 
  
namespace serverSocket 

    class Program 
    { 
        private Thread Beginthread, receivethread; 
        private Socket serverSocket, ClientSocket; 
  
        static void Main(string[] args) 
        { 
            Program program = new Program(); 
  
            IPEndPoint remotePoint = new IPEndPoint(IPAddress.Any, 843); 
  
            program.serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
  
            program.serverSocket.Bind(remotePoint); 
            program.serverSocket.Listen(10); 
  
            Console.WriteLine("Listening..."); 
            program.Beginthread = new Thread(new ThreadStart(program.BeginListen)); 
            program.Beginthread.Start(); 
        } 
  
        private void BeginListen() 
        { 
            while (true) 
            { 
                ClientSocket = serverSocket.Accept(); 
                receivethread = new Thread(new ThreadStart(receive)); 
                receivethread.Start(); 
            } 
        } 
  
        private void receive() 
        { 
            IPEndPoint clienTep = (IPEndPoint)ClientSocket.RemoteEndPoint; 
  
            int bytes = 0; 
  
            while (true) 
            { 
                Byte[] buffer = new Byte[24]; 
                bytes = ClientSocket.Receive(buffer); 
  
                if (bytes > 0) 
                { 
                    string clientCommand = Encoding.UTF8.GetString(buffer, 0, bytes); 
  
                    String policy = "<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"2999\" /></cross-domain-policy>\0"; 
  
                    buffer = System.Text.Encoding.UTF8.GetBytes(policy.ToCharArray()); 
  
                    ClientSocket.Send(buffer, buffer.Length, 0); 
                } 
                else 
                { 
                    break; 
                } 
            } 
  
            ClientSocket.Close(); 
            receivethread.Abort(); 
        } 
    } 
}

端口可以修改为843,或者是你指定连接的任意端口。