青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Flex Socket 與 C++ 通訊 --- 安全沙箱問題解決

最近一個項目的客戶端要改成Flex,使用Socket與C++通訊時遇到了安全沙箱問題,這是我的解決方法;

1):策略文件與主套接字在同一端口,只需調用 Socket.connect() 或 XMLSocket.connect() 方法;

2):策略文件與主套接字在不同端口,需使用特殊的“xmlsocket”語法調用 Security.loadPolicyFile() 方法,如下所示:

Security.loadPolicyFile("xmlsocket://server.com:2525");

先調用 Security.loadPolicyFile() 方法,然后再調用 Socket.connect() 或 XMLSocket.connect() 方法。

測試代碼:使用同一端口

view plaincopy to clipboardprint?
#include <winsock2.h>  
#include <windows.h>  
#include <iostream>  
using namespace std;  
#pragma comment(lib,"ws2_32.lib")  

void main()  
{   
    WORD wVersionRequested;  
    WSADATA wsaData;  
    int err;  
    short port=1800;//端口號  
      
    wVersionRequested = MAKEWORD( 1, 1 );  
    err = WSAStartup( wVersionRequested, &wsaData );//初始化套接字  
    if ( err != 0 )  
    {  
        return;  
    }  
      
    if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 )  
    {  
        WSACleanup( );  
        return;  
    }  
      
    SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//創建套接字  
    SOCKET sockConn;//用來和客戶端通信的套接字  
    SOCKADDR_IN addrSrv;//用來和客戶端通信的套接字地址  
    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);  
    addrSrv.sin_family=AF_INET;  
    addrSrv.sin_port=htons(port);  
      
    bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//綁定端口  
    listen(sockSrv,5);//偵聽  
      
    printf("Server %d is listening......\n",port);  
      
    SOCKADDR_IN addrClient;  
      
    int len=sizeof(SOCKADDR);  
    char buf[4096];//接收的數據  
    char rbuf[100]=  
        "<cross-domain-policy> "    
        "<allow-access-from domain=\"*\" to-ports=\"*\"/>"    
        "</cross-domain-policy> ";//套接字策略文件  
      
    while(1)  
    {  
        //接受連接  
        sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);  
        printf("Accept connection from %s\n",inet_ntoa(addrClient.sin_addr));  
          
recv:  
        //接收數據  
        int bytes;  
        if((bytes=recv(sockConn,buf,sizeof(buf),0))==SOCKET_ERROR)  
        {  
            printf("接收數據失敗!\n");  
            exit(-1);  
        }  

        buf[bytes]='\0';  
        printf("Message from %s: %s\n",inet_ntoa(addrClient.sin_addr),buf);       

        if (0 == strcmp(buf,"<policy-file-request/>"))  
        {  
            //發送數據  
            if(send(sockConn,rbuf,strlen(rbuf)+1,0)==SOCKET_ERROR)  
            {  
                printf("發送數據失敗!");  
                exit(-1);  
            }  
            printf("Message to %s: %s\n",inet_ntoa(addrClient.sin_addr),rbuf);  
        }  
        else
        {  
            //Echo  
            if(send(sockConn,buf,strlen(buf)+1,0)==SOCKET_ERROR)  
            {  
                printf("發送數據失敗!");  
                exit(-1);  
            }  
            printf("Message to %s: %s\n",inet_ntoa(addrClient.sin_addr),buf);  
            goto recv;  
        }  
        //清理套接字占用的資源  
        closesocket(sockConn);  
    }  
}
#include <winsock2.h>
#include <windows.h>
#include <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
short port=1800;//端口號

wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );//初始化套接字
if ( err != 0 )
{
   return;
}

if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 )
{
   WSACleanup( );
   return;
}

SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//創建套接字
SOCKET sockConn;//用來和客戶端通信的套接字
SOCKADDR_IN addrSrv;//用來和客戶端通信的套接字地址
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(port);

bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//綁定端口
listen(sockSrv,5);//偵聽

printf("Server %d is listening......\n",port);

SOCKADDR_IN addrClient;

int len=sizeof(SOCKADDR);
char buf[4096];//接收的數據
char rbuf[100]=
   "<cross-domain-policy> "
   "<allow-access-from domain=\"*\" to-ports=\"*\"/>"
   "</cross-domain-policy> ";//套接字策略文件

while(1)
{
        //接受連接
   sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
   printf("Accept connection from %s\n",inet_ntoa(addrClient.sin_addr));
  
recv:
   //接收數據
   int bytes;
   if((bytes=recv(sockConn,buf,sizeof(buf),0))==SOCKET_ERROR)
   {
    printf("接收數據失敗!\n");
    exit(-1);
   }

   buf[bytes]='\0';
   printf("Message from %s: %s\n",inet_ntoa(addrClient.sin_addr),buf);  

   if (0 == strcmp(buf,"<policy-file-request/>"))
   {
    //發送數據
    if(send(sockConn,rbuf,strlen(rbuf)+1,0)==SOCKET_ERROR)
    {
     printf("發送數據失敗!");
     exit(-1);
    }
    printf("Message to %s: %s\n",inet_ntoa(addrClient.sin_addr),rbuf);
   }
   else
   {
    //Echo
    if(send(sockConn,buf,strlen(buf)+1,0)==SOCKET_ERROR)
    {
     printf("發送數據失敗!");
     exit(-1);
    }
    printf("Message to %s: %s\n",inet_ntoa(addrClient.sin_addr),buf);
    goto recv;
   }
        //清理套接字占用的資源
        closesocket(sockConn);
}
}

 

無論是哪種情況,服務器均必須等待客戶端的第一次傳輸之后再決定是發送策略文件還是建立主連接。當 Flash Player 請求策略文件時,它始終會在建立連接后傳輸以下字符串:

<policy-file-request/>
服務器收到此字符串后,即會傳輸該策略文件。程序對于策略文件請求和主連接并不會使用同一連接,因此應在傳輸策略文件后關閉連接。如果不關閉連接,Flash Player 將關閉策略文件連接,之后重新連接以建立主連接。

附網絡資料:

1,首先檢測目標服務器的843端口是否提供安全策略
2,如果1沒有檢測到策略,則檢測actionscript是否使用了Security.loadPolicyFile(xmlsocket://) 手段提供安全策略,如果還沒檢測到,則使用第3步檢測
3,檢測目標服務器目標端口是否提供安全策略

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/xuxiangwin/archive/2009/07/07/4324218.aspx

Feedback

# re: [轉]Flex Socket 與 C++ 通訊 --- 安全沙箱問題解決  回復  更多評論   

2011-03-16 13:40 by 小不點
偽指令#pragma pack (n),C編譯器將按照n個字節對齊。
偽指令#pragma pack (),取消自定義字節對齊方式。

# re: [轉]Flex Socket 與 C++ 通訊 --- 安全沙箱問題解決  回復  更多評論   

2011-03-19 21:47 by NO
關注:

Shut up 2011-3-9 21:03:57
http://tech.ddvip.com/2008-12/122855295598098.html
Shut up 2011-3-9 21:04:04
http://www.codeproject.com/KB/IP/iocp_server_client.aspx
Shut up 2011-3-10 14:03:14
http://blog.csdn.net/Solstice/category/793463.aspx
Shut up 2011-3-11 19:42:06
http://blog.csdn.net/guestcode/category/569314.aspx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            伊甸园精品99久久久久久| 国产精品天天看| 亚洲丶国产丶欧美一区二区三区 | 国产区精品视频| 午夜精品一区二区三区在线视 | 久久久五月婷婷| 久久久欧美一区二区| 1000部国产精品成人观看| 欧美暴力喷水在线| 欧美激情欧美激情在线五月| 一本一道久久综合狠狠老精东影业 | 国产亚洲成精品久久| 久久久久久久999精品视频| 久久资源在线| 99精品99| 欧美在线视频一区二区三区| 亚洲黄色免费| 亚洲伊人伊色伊影伊综合网| 黄色一区三区| 一区二区免费在线观看| 国产午夜精品视频免费不卡69堂| 男人插女人欧美| 欧美日韩中文字幕综合视频| 久久久91精品国产| 欧美黄色片免费观看| 久久se精品一区二区| 欧美ed2k| 久久成人精品视频| 欧美精品在线视频| 久久久久国产精品厨房| 欧美久久久久久久久| 久久免费视频这里只有精品| 欧美日韩在线视频观看| 久久婷婷人人澡人人喊人人爽| 欧美精品久久久久久久久久| 久久久国产精品一区| 欧美日韩国产在线播放网站| 久久性天堂网| 国产精品久久看| 亚洲黄色av一区| 国产亚洲va综合人人澡精品| 9色精品在线| 91久久精品一区二区别| 欧美一区日韩一区| 亚洲欧美一区二区激情| 欧美国产精品劲爆| 欧美成ee人免费视频| 国产一区二区三区在线播放免费观看| 亚洲免费av电影| 亚洲精品免费看| 久久久人成影片一区二区三区| 欧美一区二区大片| 国产精品裸体一区二区三区| 亚洲欧洲日韩女同| 亚洲日本va午夜在线电影| 久久国产综合精品| 久久电影一区| 国产欧美日韩综合精品二区| 一区二区国产日产| 亚洲视频中文字幕| 欧美人与性动交cc0o| 亚洲国产精品久久久久久女王| 1769国产精品| 久久久欧美一区二区| 欧美成人激情视频| 久久久精品日韩| 久久中文久久字幕| 国产欧美日韩精品专区| 亚洲欧美在线视频观看| 亚洲国产一区二区a毛片| 狠狠干狠狠久久| 欧美日本高清| 久久久久久9| 亚洲欧美一级二级三级| 国产精品无码专区在线观看| 欧美日韩国产探花| 欧美大片一区二区三区| 久久久久99精品国产片| 亚洲资源在线观看| 亚洲综合二区| 亚洲欧美美女| 欧美一区二区三区在线视频| 亚洲视频自拍偷拍| 亚洲天堂激情| 欧美在线观看一区二区三区| 午夜宅男欧美| 久久久久久久综合| 欧美/亚洲一区| 欧美电影资源| 国产精品豆花视频| 国产毛片精品视频| 激情偷拍久久| 一本色道久久加勒比精品| 一本久久综合亚洲鲁鲁| 欧美一区二区三区婷婷月色| 乱人伦精品视频在线观看| 欧美freesex交免费视频| 亚洲东热激情| 亚洲在线免费| 欧美国产日韩一区| 国产精品乱码一区二区三区| 亚洲国产日韩综合一区| 91久久在线视频| 伊人精品久久久久7777| 亚洲免费电影在线观看| 久久久免费精品| 亚洲人成亚洲人成在线观看| 午夜精品免费在线| 国产精品www.| 中文一区二区| 亚洲精品亚洲人成人网| 免费亚洲电影| 亚洲国产精品电影| 久久久久久午夜| 欧美亚洲综合久久| 欧美精品一区二区三区在线看午夜 | 欧美区二区三区| 亚洲经典三级| 亚洲国产清纯| 欧美日本中文| 午夜综合激情| 久久aⅴ国产紧身牛仔裤| 国产精品一区2区| 午夜亚洲性色福利视频| 亚洲影院免费| 一区免费在线| 亚洲美女淫视频| 国产九九精品视频| 久久久久国内| 男女精品网站| 亚洲免费综合| 另类亚洲自拍| 亚洲特黄一级片| 欧美在线播放一区| 亚洲人成人一区二区三区| 99这里有精品| 在线电影欧美日韩一区二区私密| 亚洲国产精品传媒在线观看| 国产乱理伦片在线观看夜一区| 亚洲精品乱码久久久久久蜜桃91| 亚洲人成艺术| 欧美激情国产精品| 亚洲成色777777女色窝| 久久免费国产| 亚洲高清自拍| 亚洲午夜视频在线观看| 国产美女精品| 欧美国产另类| 欧美亚洲免费电影| 亚洲国产高清一区二区三区| 一区二区av| 国产欧美日本一区二区三区| 午夜精品久久久久久久久久久久久 | 欧美一区二区三区四区在线观看地址| 欧美日韩精品欧美日韩精品 | 久久久噜噜噜久久久| 亚洲一区二区黄色| 激情久久婷婷| 99国内精品久久| 午夜日韩在线观看| 亚洲黄页一区| 国产精品一级| 欧美极品在线观看| 一本大道av伊人久久综合| 久久精品日韩| 亚洲肉体裸体xxxx137| 欧美日韩精品在线| 亚洲欧美激情四射在线日| 欧美国产日本| 久久久久高清| 亚洲欧美日韩另类精品一区二区三区| 国产日韩精品一区二区三区| 久久综合影音| 欧美一区二区三区免费在线看| 久久中文字幕一区| 日韩一级在线观看| 亚洲区欧美区| 91久久精品国产| 尤物在线观看一区| 国产精品久久久久久久午夜片| 欧美区一区二| 欧美绝品在线观看成人午夜影视 | 亚洲色无码播放| 亚洲欧洲综合另类| 欧美午夜一区二区三区免费大片| 欧美在线free| 久久久蜜臀国产一区二区| 亚洲欧美日韩精品久久奇米色影视| 一区二区三区日韩精品| 亚洲美洲欧洲综合国产一区| 91久久精品视频| 亚洲国产日韩美| 亚洲精品免费看| 一本一本a久久| 久久激情五月激情| 亚洲乱亚洲高清| 久久久久久午夜| 最新国产の精品合集bt伙计| 亚洲精品视频免费| 亚洲一品av免费观看|