iocp socket 安全沙箱问题

bearxiongying 2009-11-05 11:03:17
本人最近要用vc写个iocp服务器和前端flash配合,但一直存在沙箱问题。网上查了不少资料,都说服务器接受到 “<policy-file-request/>\0”时 就返回一个安全策略文件,
但奇怪的是,如果服务端是同步模式就可行
采用iocp异步机制的时候 ,信息虽然发出去了 ,但还是存在沙箱问题
本地测试没问题,放网上就有安全沙箱问题
关键代码如下 望高手指点一二

//接受到安全请求时发送策略文件 这里策略文件发送成功了
message = SI->DataBuf.buf;
int m;
m = message.Find("<policy-file-request/>");
if(m >= 0)
{
CString xml = "<cross-domain-policy>";
xml = xml + "<site-control permitted-cross-domain-policies=\"all\"/>";
xml = xml + "<allow-access-from domain=\"*\" to-ports=\"*\" />";
xml = xml + "</cross-domain-policy>\0";

sprintf(SI->DataBuf.buf,"%s",xml);
SI->DataBuf.len = strlen(SI->DataBuf.buf);
SI->IoType = IOSEND;
if (WSASend(SI->Socket, &SI->DataBuf, 1, &Bytes, Flags, &SI->Overlapped, NULL) == SOCKET_ERROR)
{
if(WSAGetLastError() != WSA_IO_PENDING)
{
closesocket(SI->Socket);
}
}

// 但是发送后 代码跳到这里出错了 BytesTransferred 为0 不知道怎么回事。
if (GetQueuedCompletionStatus(hCompPort, &BytesTransferred, (LPDWORD)&SI, &Overlapped, INFINITE))
{
if (0 == BytesTransferred && IOQUIT != SI->IoType)
{
//退出操作
}
懂的人指点下 谢谢
...全文
50 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bearxiongying 2009-11-07
  • 打赏
  • 举报
回复
花了我几个晚上来搞,居然在csdn上发帖连个回的人都没。还好终于解决了。一个很愚蠢的疏忽 呵呵
bearxiongying 2009-11-06
  • 打赏
  • 举报
回复
各位给带你建议或思路也行啊 真是被这问题烦死了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧