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

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

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

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

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

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

先調(diào)用 Security.loadPolicyFile() 方法,然后再調(diào)用 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);//創(chuàng)建套接字  
    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];//接收的數(shù)據(jù)  
    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:  
        //接收數(shù)據(jù)  
        int bytes;  
        if((bytes=recv(sockConn,buf,sizeof(buf),0))==SOCKET_ERROR)  
        {  
            printf("接收數(shù)據(jù)失敗!\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/>"))  
        {  
            //發(fā)送數(shù)據(jù)  
            if(send(sockConn,rbuf,strlen(rbuf)+1,0)==SOCKET_ERROR)  
            {  
                printf("發(fā)送數(shù)據(jù)失敗!");  
                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("發(fā)送數(shù)據(jù)失敗!");  
                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);//創(chuàng)建套接字
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];//接收的數(shù)據(jù)
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:
   //接收數(shù)據(jù)
   int bytes;
   if((bytes=recv(sockConn,buf,sizeof(buf),0))==SOCKET_ERROR)
   {
    printf("接收數(shù)據(jù)失敗!\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/>"))
   {
    //發(fā)送數(shù)據(jù)
    if(send(sockConn,rbuf,strlen(rbuf)+1,0)==SOCKET_ERROR)
    {
     printf("發(fā)送數(shù)據(jù)失敗!");
     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("發(fā)送數(shù)據(jù)失敗!");
     exit(-1);
    }
    printf("Message to %s: %s\n",inet_ntoa(addrClient.sin_addr),buf);
    goto recv;
   }
        //清理套接字占用的資源
        closesocket(sockConn);
}
}

 

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

<policy-file-request/>
服務(wù)器收到此字符串后,即會傳輸該策略文件。程序?qū)τ诓呗晕募埱蠛椭鬟B接并不會使用同一連接,因此應(yīng)在傳輸策略文件后關(guān)閉連接。如果不關(guān)閉連接,F(xiàn)lash Player 將關(guān)閉策略文件連接,之后重新連接以建立主連接。

附網(wǎng)絡(luò)資料:

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

 

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

Feedback

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

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

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

2011-03-19 21:47 by NO
關(guān)注:

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国产精品日本| 在线视频日韩精品| 欧美成人免费全部| 美女诱惑一区| 亚洲无限av看| 欧美一级久久| 亚洲国产精品尤物yw在线观看| 亚洲国产日韩欧美| 欧美精品一卡| 欧美一区二区三区播放老司机| 午夜电影亚洲| 亚洲精品欧美在线| 一本色道久久加勒比88综合| 国产日韩精品视频一区| 久热这里只精品99re8久| 欧美精品一区二区高清在线观看| 亚洲一区精品视频| 欧美一区深夜视频| 一区二区精品| 久久国产欧美| 亚洲一区二区三区四区五区黄 | 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲欧美美女| 欧美激情精品久久久久久久变态| 欧美资源在线| 欧美成人精品h版在线观看| 在线视频日本亚洲性| 久久av最新网址| 在线一区二区三区四区五区| 久久成人18免费观看| 99在线精品观看| 久久久综合网站| 西西人体一区二区| 欧美/亚洲一区| 久久露脸国产精品| 国产精品久久久久av免费| 欧美a级一区| 国产亚洲精品久| 亚洲一区二区欧美日韩| 亚洲精品一区在线观看| 久久精品一区二区| 久久激情视频免费观看| 欧美日韩高清免费| 亚洲国产成人精品久久| 精东粉嫩av免费一区二区三区| 亚洲影院在线观看| 亚洲一级黄色| 欧美日韩国产小视频| 欧美成人精品一区二区| 伊人成人在线视频| 久久精品国产一区二区三区免费看 | 欧美在线91| 国产精品免费福利| 亚洲精品一区二区三区不| 亚洲日本久久| 欧美—级a级欧美特级ar全黄| 欧美大片免费看| 亚洲国产三级网| 六十路精品视频| 欧美激情1区2区3区| 在线播放日韩欧美| 久久综合久久88| 欧美黄色日本| 99精品热6080yy久久| 欧美片网站免费| 99re6这里只有精品视频在线观看 99re6这里只有精品 | 日韩午夜免费| 亚洲一区二区伦理| 欧美日本在线| 一区二区高清在线| 亚洲综合国产| 国产精品国产三级国产a| 国产精品99久久久久久宅男| 性欧美8khd高清极品| 国产欧美日韩一区二区三区在线观看 | 亚洲一区二区免费看| 国产精品成人在线观看| 亚洲淫性视频| 美女图片一区二区| 亚洲欧洲另类国产综合| 欧美人与禽性xxxxx杂性| 夜久久久久久| 久久久亚洲午夜电影| 亚洲福利在线观看| 欧美成人黄色小视频| 欧美xx视频| 亚洲小视频在线| 国产欧美精品久久| 久久久精品999| 亚洲蜜桃精久久久久久久| 亚洲欧美一区二区三区在线| 国产一区二区三区久久久| 免费在线亚洲| 亚洲综合精品一区二区| 鲁大师影院一区二区三区| 99re热精品| 国产专区一区| 欧美日韩一区二区三区免费| 小嫩嫩精品导航| 亚洲国产一区二区三区a毛片| 亚洲欧美视频在线观看| 亚洲激情一区二区三区| 国产精品视频久久| 欧美高清视频| 欧美在线日韩| 制服丝袜亚洲播放| 亚洲激情在线播放| 久久免费视频观看| 亚洲影院色在线观看免费| 亚洲高清在线| 国产日韩欧美精品在线| 欧美日韩久久精品| 快射av在线播放一区| 亚洲一区二区三区在线看| 亚洲国产一区二区视频| 久久人人爽人人爽爽久久| 亚洲免费在线电影| 亚洲乱码国产乱码精品精98午夜| 国产日韩亚洲欧美精品| 国产精品a久久久久| 欧美粗暴jizz性欧美20| 久久成人久久爱| 亚洲自拍偷拍色片视频| 一区二区三区久久网| 亚洲精品日韩综合观看成人91| 免费一级欧美片在线播放| 久久精品亚洲国产奇米99| 午夜精品剧场| 亚洲欧美国产日韩天堂区| 亚洲麻豆国产自偷在线| 亚洲国产另类久久久精品极度| 韩曰欧美视频免费观看| 国产偷国产偷精品高清尤物| 国产精品青草久久| 国产精品视频一| 国产乱码精品一区二区三区av| 国产精品网站在线播放| 国产精品久久久久99| 国产精品高清在线| 国产精品日韩| 国产欧美日韩一区二区三区在线| 国产精品久久久久aaaa九色| 国产精品美女久久久| 国产精品视频内| 国产网站欧美日韩免费精品在线观看| 欧美午夜电影在线| 国产精品亚洲综合一区在线观看| 国产精品sm| 国产亚洲精品久久久久久| 国产字幕视频一区二区| 伊人色综合久久天天五月婷| 亚洲欧洲另类国产综合| 一区二区免费在线视频| 在线亚洲伦理| 欧美中文在线观看国产| 久久精品日韩一区二区三区| 久久综合成人精品亚洲另类欧美| 美女精品网站| 亚洲人久久久| 亚洲欧美日韩综合| 老**午夜毛片一区二区三区| 欧美岛国激情| 国产精品久久综合| 欧美有码在线观看视频| 久久天堂精品| 欧美国产精品日韩| 国产精品系列在线| 狠久久av成人天堂| 在线亚洲一区二区| 久久久久国产一区二区三区| 欧美www视频在线观看| 日韩视频在线永久播放| 亚洲欧美日韩在线观看a三区| 久久午夜电影| 欧美天天视频| 亚洲高清一区二| 香蕉久久夜色精品国产| 美国成人直播| 中国亚洲黄色| 欧美成年人视频| 国产欧美丝祙| 日韩一级片网址| 久久久久久久尹人综合网亚洲| 亚洲国产精品电影| 香蕉久久国产| 欧美日韩高清在线一区| 狠狠网亚洲精品| 欧美亚洲一区二区在线观看| 欧美激情第1页| 欧美一区在线直播| 国产精品久久久久久户外露出| 亚洲国产91| 久久精品在这里| 一区二区精品在线| 欧美成人日韩| 黄色成人免费网站| 欧美一级一区| 亚洲一区二区成人在线观看| 欧美激情综合色综合啪啪| 激情成人综合网|