Security Sandbox of the Webplayer in U3D

3050阅读 0评论2011-07-22 matthew_1983
分类:嵌入式

参考文章:http://unity3d.com/support/documentation/Manual/Security%20Sandbox.html
unity3.0版本后的webplayer加入了security sandbox特性,使用socket连接之前,会向默认端口843发送策略文件请求信息:,如果返回信息不正确或者端口不在允许范围内,socket连接失败并且报以下异常:
  1. System.Security.SecurityException: Unable to connect, as no valid crossdomain policy was found
解决以上问题需要进行两步处理:
第一步:
在客户端socket连接之前调用以下API函数 Security.PrefetchSocketPolicy(server,port)
第二步:
开启服务器之前运行sockpol.exe,位置为unity安装目录Unity\Editor\Data\Tools\SocketPolicyServer,作用是向客户端返回策略文件信息,运行时有三个命令:--all表示接受所有port范围,--range表示接收范围是4500-4550,可以在源代码中进行修改,--file表示读取本地文件,后面跟文件路径,可以自定义port范围,自定义文件格式如下:
  1. <?xml version="1.0"?>
  2. <cross-domain-policy>
  3.     <allow-access-from domain="*" to-ports="8000" />
  4. </cross-domain-policy>
经局域网测试,连接正常。
上一篇:Yield使用方法
下一篇:导航网格寻路与路点寻路