资源描述:
《c++与flex之间socket通信policy-file-request解决方案》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C++与Flex之间socket通信policy-file-request解决方案C++winsocket服务端,Flexas3客户端。服务端Bind绑定IP127.0.0.1端口2020,在Flex中使用Socket.connect向服务器发起链接。当Flex在本地运行的时候能链接成功,但是通过域名访问时出现Security错误,Error#2048。并且在连接时,服务端收到客户端发来的消息消息。尝试解决:上google搜索了若干资料,我看了良久也一知半解。出现
2、这个问题的原因是FlashPlayer有一个安全沙箱机制。本地运行swf时,flashPlayer默认的安全策略是可以跨预访问的,可以查看Security.sandboxType属性值为localTrusted。然而在使用IP访问swf文件时,flashPlayer会认为这个文件是不安全的此时可以查看Security.sandboxType的属性值为remote。此时需要在服务端放置策略文件,flashPlayer才会让swf链接到此服务器。若干人的博客上都说需要名为crossdomain.xml的文件放置
3、到服务端HTTP的根目录下。文件内容为viewplaincopytoclipboardprint?1. 1. 2. 3. 4. 我这么做了,但是
4、没有任何效果。(我能确定策略文件被访问到了,因为文件中出现语法错误的时候Flex调试信息中还会报出警告。)于是我猜想这个方法也许是解决不能访问远程HTTP文件的的问题,而socket通信需要另外的方法。然后在CSDN论坛上发现有人用JavaSocket和Flex通信出现同样问题,解决方案是服务端收到消息时,直接向客户端发送一条消息,内容就是上面的策略文件的xml。我仿照做了,依然无效>_5、zPolicy[1024] = ""; 2.strcat_s(szPolicy, 1024, ""); 3.strcat_s(szPolicy, 1024, ""); 4.strcat_s(szPolicy, 1024, ""); 5.strcat_s(szPolicy, 1024, "6、-from domain='*' to-ports='2020'/>"); 6.strcat_s(szPolicy, 1024, "