本人最近要用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)
   {
     //退出操作
}
懂的人指点下 谢谢