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

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ā)送策略文件還是建立主連接。當(dāng) 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,首先檢測目標(biāo)服務(wù)器的843端口是否提供安全策略
2,如果1沒有檢測到策略,則檢測actionscript是否使用了Security.loadPolicyFile(xmlsocket://) 手段提供安全策略,如果還沒檢測到,則使用第3步檢測
3,檢測目標(biāo)服務(wù)器目標(biāo)端口是否提供安全策略

 

本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處: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>
            亚洲青色在线| 亚洲国产毛片完整版 | 国产精品一区二区久久| 国产精品劲爆视频| 国产视频综合在线| 在线成人www免费观看视频| 91久久综合亚洲鲁鲁五月天| 99这里有精品| 欧美一区二区视频在线| 久久免费视频在线| 亚洲福利视频一区| 亚洲精品一品区二品区三品区| 99re热这里只有精品免费视频| 亚洲一区二区精品视频| 久久精品国产清高在天天线| 久久婷婷一区| 欧美午夜激情视频| 激情成人中文字幕| 一本一本久久| 久久国产精品电影| 亚洲国产成人精品久久久国产成人一区 | 亚洲国产高清aⅴ视频| 99精品国产99久久久久久福利| 亚洲一区免费| 乱人伦精品视频在线观看| 欧美精品一区在线播放| 国产伦精品一区二区三区| 亚洲国产成人av| 亚洲永久网站| 欧美xx69| 亚洲午夜久久久久久尤物 | 米奇777超碰欧美日韩亚洲| 欧美日韩在线免费| 国产亚洲免费的视频看| 日韩视频在线免费| 久久久久欧美精品| 亚洲精品一区二区三区婷婷月| 欧美一区二区三区久久精品| 欧美国产一区二区在线观看| 国产乱子伦一区二区三区国色天香| 在线播放中文字幕一区| 亚洲欧美中文在线视频| 亚洲第一综合天堂另类专| 性欧美长视频| 欧美深夜影院| 亚洲国产黄色片| 久久gogo国模啪啪人体图| 亚洲欧洲久久| 久久天天躁夜夜躁狠狠躁2022 | 久久久久九九视频| 99av国产精品欲麻豆| 美女在线一区二区| 国产视频精品xxxx| 亚洲一区二区三区中文字幕| 免费在线日韩av| 亚洲免费在线| 久久躁日日躁aaaaxxxx| 国产女人水真多18毛片18精品视频| 久久成人人人人精品欧| 亚洲精品一区二区三区婷婷月| 久久久福利视频| 国产欧美在线观看| 亚洲综合国产| 日韩一区二区精品在线观看| 久久免费黄色| 国一区二区在线观看| 欧美一级视频精品观看| 一级成人国产| 欧美日韩一区成人| 夜夜嗨av色综合久久久综合网 | 亚洲高清av| 久久天天躁夜夜躁狠狠躁2022| 亚洲一区欧美二区| 国产精品久久久久久久9999| 日韩一级精品视频在线观看| 欧美激情一区二区三区在线| 久久久久久国产精品mv| 国产亚洲精品aa| 久久国内精品视频| 亚洲自拍16p| 国产精品一区免费观看| 午夜久久电影网| 亚洲一区日韩在线| 国产精品乱子久久久久| 亚洲一区二区三区免费在线观看| 亚洲精品视频在线播放| 欧美日韩精品久久久| 一本色道久久综合精品竹菊 | 国产精品久久久91| 亚洲一区久久久| 亚洲视频免费| 国产欧美精品一区二区色综合 | 久久网站免费| 亚洲国产精品一区二区www| 老司机久久99久久精品播放免费 | 女人色偷偷aa久久天堂| 亚洲激情午夜| 亚洲精品视频免费在线观看| 欧美日韩视频在线第一区| 亚洲先锋成人| 亚洲永久在线观看| 国产亚洲欧美日韩美女| 久久视频一区二区| 蜜桃av综合| 99视频精品| 亚洲午夜久久久久久久久电影院 | 欧美一区二区在线观看| 狠狠入ady亚洲精品| 欧美~级网站不卡| 欧美国产专区| 亚洲欧美www| 亚洲免费伊人电影在线观看av| 国产精品自拍视频| 裸体丰满少妇做受久久99精品| 老牛嫩草一区二区三区日本| 亚洲精品中文字幕在线| 在线中文字幕不卡| 国产主播精品在线| 欧美激情一区二区三区四区| 欧美日韩免费在线| 欧美一区二区精美| 久久嫩草精品久久久久| 亚洲毛片网站| 亚洲欧美日韩国产综合在线| 激情欧美亚洲| 亚洲激情一区二区三区| 欧美亚男人的天堂| 久久中文欧美| 欧美日韩另类视频| 久久精品一区二区国产| 欧美大片国产精品| 欧美亚洲综合在线| 蜜臀久久99精品久久久画质超高清| 妖精成人www高清在线观看| 午夜亚洲性色视频| 日韩视频在线免费观看| 西西人体一区二区| 亚洲精品免费在线| 欧美亚洲三区| 99热这里只有精品8| 小嫩嫩精品导航| 亚洲最新色图| 久久久久久久波多野高潮日日| av成人天堂| 久久久青草青青国产亚洲免观| 制服诱惑一区二区| 久久综合狠狠综合久久综合88| 亚洲亚洲精品在线观看| 看欧美日韩国产| 欧美影院视频| 欧美精品一区二区三区在线看午夜| 亚洲欧美另类在线观看| 免费在线亚洲| 久久精品视频在线播放| 欧美日韩国产a| 欧美成人按摩| 国产一区91精品张津瑜| 亚洲毛片在线免费观看| 在线观看日韩专区| 亚洲欧美国产毛片在线| 一区二区三区产品免费精品久久75 | 亚洲乱码国产乱码精品精| 黄色成人在线免费| 亚洲一区二区精品在线观看| 亚洲免费成人| 久久综合狠狠综合久久综合88| 欧美一区免费视频| 欧美图区在线视频| 亚洲电影中文字幕| 国产一区二区剧情av在线| 一本色道**综合亚洲精品蜜桃冫 | 在线视频亚洲| 麻豆精品91| 久久一区二区视频| 国产精品亚洲片夜色在线| 99ri日韩精品视频| 日韩视频在线一区二区| 老色鬼久久亚洲一区二区| 久久精品久久99精品久久| 国产精品女主播| 一区二区三区毛片| 中文精品99久久国产香蕉| 欧美精品手机在线| 亚洲高清网站| 亚洲破处大片| 欧美成人激情视频| 欧美激情一区二区三区 | 亚洲福利专区| 久久综合精品国产一区二区三区| 久久亚洲春色中文字幕久久久| 国产日本欧美在线观看| 亚洲视频免费在线| 亚洲欧美综合v| 国产精品国产三级国产aⅴ无密码| 亚洲另类自拍| 亚洲天堂成人在线观看| 欧美巨乳在线观看| 亚洲精品日韩激情在线电影| 一二三区精品福利视频| 欧美另类69精品久久久久9999|