flash player 9.0.124.0版本socket策略问题

来源:互联网 发布:软件下载之家 编辑:程序博客网 时间:2024/05/21 18:39

有些客户说连游戏不上了,但我的机器可以,开始以为个人电脑问题,后来同事google一下,原来是adobe更新 palyer的问题,郁闷,最近太忙,没关注这些事,所以现在急了,不过还好,现在搞定
测试环境客户端:flex as3
服务端C
客户端不需要改代码的,因为adobe只是加强安全策略,原来可以从http中读取,现在也可以,但对socket or xmlsocket没有用了,所以要在服务端改代码,当客户端连socket时,as3会自动向服务端发送<policy-file-request/>这个字符串请求返回策略文件,所以当服务器收到这个串后给client返回就好了方法
1在目的端口: 在服务端接收函数中判断[C code] 
*  if(!strcmp(buffer,"<policy-file-request/>")){  char policy[1024];  sprintf(policy, "<?xml version=/"1.0/" encoding=/"utf-8/" ?><cross-domain-policy><allow-access-from domain=/"*/" to-ports=/"*/" /></cross-domain-policy>/0");  int rn=send(s,policy,strlen(policy) 1,0); } 就可以了,
2写一个socket 843端口服务,此服务只是返回策略文件就行了,方法同上端口843为adobe的协议端口说明: as3请求策略文件过程1-向端口843请求,2向Security.loadPolicyFile(xmlsocket://)请求,3向目的端口请求,任一个都行时间问题,写的有点急