ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:79.50KB ,
资源ID:1002281      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1002281.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++与Flex之间socket通信policy-file-request解决方案.DOC)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

C++与Flex之间socket通信policy-file-request解决方案.DOC

1、C+与 Flex 之间 socket 通信 policy-file-request 解决方案C+winsocket 服务端,Flex as3 客户端。服务端 Bind 绑定 IP127.0.0.1端口 2020,在 Flex 中使用 Socket.connect 向服务器发起链接。当Flex 在本 地运行的时候能链接成功, 但是通过域名访问时出现Security 错误, Error #2048 。并且在连接时, 服务端收到客户端发来的消息 消息。 尝试解决: 上 google 搜索了若干资料,我看了良久也一知半解。 出现这个问题的原因是 FlashPlayer 有一个安全沙箱机制 。本地运行s

2、wf 时,flashPlayer 默认的安全策略是可以跨预访问的,可以查看Security.sandboxType 属性值为 localTrusted。然而在使用 IP 访问swf 文件时,flashPlayer 会认为这个文件是不安全的此时可以查看 Security.sandboxType 的属性值为 remote。此时需要在服务端放置策略文件,flashPlayer 才会让 swf 链接到此服务器。 若干人的博客上都说需要名为 crossdomain.xml 的文件放置到服务端HTTP 的根目录下。文件内容为 view plaincopy to clipboardprint?1. 2. 3

3、. 4. 5. 我这么做了,但是没有任何效果。(我能确定策略文件被访问到了,因为文件中出现语法错误的时候 Flex 调试信息中还会报出警告。)于是我猜想这个方法也许是解决不能访问远程 HTTP 文件的的问题,而socket 通信需要另外的方法。 然后在 CSDN 论坛上发现有人用 JavaSocket 和 Flex 通信出现同样问题,解决方案是服务端收到 消息时,直接向客户端发送一条消息,内容就是上面的策略文件的 xml 。我仿照做了,依然无效_“); 3. strcat_s(szPolicy, 1024, “); 4. strcat_s(szPolicy, 1024, “); 5. strc

4、at_s(szPolicy, 1024, “); 6. strcat_s(szPolicy, 1024, “0“); 7. sockClient = m_sockListener.Accept( 8. if (sockClient.IsInvalid() 9. 10. / accept failed 11. puts(“# Error! Acceptation failed.“); 12. continue; 13. 14.nRecvLen = sockClient.Receive(szRecvBuff, MAX_BUFF); 15.if (sockClient.IsDisconnect()

5、16. 17. / disconnect 18. printf_s(“# Disconnect client%d.n“, i); 19. RemoveClient(m_vsockClientsi-); 20. continue; 21. 22.szRecvBuffnRecvLen = 0; 23.printf_s(“# Received: %d%sn“, nRecvLen, szRecvBuff); 24.if (0 = strcmp(“, szRecvBuff) 25. 26. if (strlen(szPolicy) = sockClient.Send(szPolicy, strlen(s

6、zPolicy) 27. 28. printf_s(“# Send policy xml string successful.n“); 29. 30. else 31. 32. printf_s(“# Error! Send policy xml string failed.n“); 33. 34. /sockClient.Close(); /*重点在这里* 35. /RemoveClient(m_vsockClientsi-); 36. continue; 37. 38./ Connect successful. char szPolicy1024 = “;strcat_s(szPolicy

7、, 1024, “);strcat_s(szPolicy, 1024, “);strcat_s(szPolicy, 1024, “0“sockClient = m_sockListener.Accept(if (sockClient.IsInvalid() / accept failedputs(“# Error! Acceptation failed.“);continue;nRecvLen = sockClient.Receive(szRecvBuff, MAX_BUFF)if (sockClient.IsDisconnect()/ disconnectprintf_s(“# Discon

8、nect client%d.n“, i);各位就当是伪代码看吧问题解决: 最后问题的解决是看了这位大哥的博客:http:/ 居然用了 goto,让我晃了一下神。 最后的关键点是:在收到并向客户端返回策略文件之后,需要关闭当前的 socket。 原因是请求策略文件的 链接和主动发起的链接是两个独立的链接,也就是说服务端收到信息的链接并不是我们在客户端的 connect 函数的主链接。关闭策略文件的请求连接后,flashPlayer 它会自动重连。这个现象可以在服务端看到,这是我服务端接受一次链接显示 的信息: # Accept successful 127.0.0.1:4106# Readabl

9、e client0.# Received: 23# Send policy xml string successful.# Accept successful 127.0.0.1 :4107 就是这样,收工。 -相关信息: Flash CS3 文档 权限控制概述 http:/ Flash CS3 文档 加载数http:/ 先调用 Security.loadPolicyFile() 方法,然后再调用 Socket.connect() 或 XMLSocket.connect() 如果要实现套接字服务器,并且需要提供套接字策略文件,则应决定是使用接受主连接的同一端口提供策略文件,还是使用不同的端口来提供策略文件。无论 是哪种情况,服务器均必须等待客户端的第一次传输之后再决定是发送策略文件还是建立主连接。当 Flash Player 请求策略文件时,它始终会在建立连接后传输以下字符串: 服务器收到此字符串后,即会传输该策略文件。程序对于策略文件请求和主连接并不会使用同一连接,因此应在传输策略文件后关闭连接。如果不关闭连接,Flash Player 将关闭策略文件连接,之后重新连接以建立主连接。有关详细信息,请参阅套接字策略文件 。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。