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

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>
            亚洲国产裸拍裸体视频在线观看乱了中文 | 国产欧美精品| 欧美美女福利视频| 欧美阿v一级看视频| 免费成人网www| 欧美成人午夜激情在线| 欧美激情一区二区三区在线视频观看| 欧美成人免费视频| 欧美三级乱人伦电影| 国产精品黄色| 一色屋精品亚洲香蕉网站| 亚洲品质自拍| 亚洲欧美日韩系列| 久久综合亚洲社区| 亚洲黄色影片| 亚洲精品综合在线| 亚洲深夜影院| 久久中文字幕一区| 欧美视频一区二区在线观看 | 亚洲欧美中文日韩在线| 久久久久久久久久久久久9999| 免费成人小视频| 国产精品麻豆成人av电影艾秋| 国产日韩欧美亚洲一区| 亚洲精品专区| 久久免费国产精品| 日韩亚洲一区在线播放| 久久av老司机精品网站导航| 欧美a级一区二区| 国产女主播视频一区二区| 亚洲激情偷拍| 久久精品国产成人| 国产综合网站| 一二三四社区欧美黄| 久久久综合网| 一区二区电影免费观看| 久色成人在线| 国产日韩亚洲欧美| 亚洲欧美一级二级三级| 欧美激情第二页| 久久岛国电影| 国产日本欧美视频| 亚洲欧美日韩精品一区二区| 亚洲激情成人在线| 久久免费视频在线观看| 国产精品视频xxx| 亚洲网站在线看| 亚洲七七久久综合桃花剧情介绍| 久久久国际精品| 国模精品娜娜一二三区| 欧美一级黄色录像| 亚洲图片自拍偷拍| 欧美日韩性视频在线| 亚洲理论在线观看| 亚洲福利专区| 嫩模写真一区二区三区三州| 狠狠色综合色综合网络| 久久精品一区二区三区四区| 亚洲欧美日韩专区| 国产日本欧美在线观看| 羞羞视频在线观看欧美| 亚洲图片欧洲图片日韩av| 国产精品国产精品国产专区不蜜| 夜夜精品视频| 一区二区三区日韩欧美精品| 欧美日韩一区二区国产| 亚洲自拍偷拍色片视频| 中日韩视频在线观看| 欧美丝袜第一区| 亚洲欧美一区二区三区在线| 亚洲一区在线播放| 国产视频一区二区三区在线观看| 久久国产天堂福利天堂| 久久久高清一区二区三区| 激情成人亚洲| 亚洲黄色小视频| 欧美丝袜第一区| 欧美一区二区三区精品电影| 小处雏高清一区二区三区| 国产一区二区欧美日韩| 欧美va亚洲va国产综合| 欧美国产第一页| 亚洲欧美日韩国产综合| 欧美一区二区三区四区在线观看地址| 国产欧美亚洲一区| 米奇777超碰欧美日韩亚洲| 美女主播一区| 亚洲无亚洲人成网站77777| 亚洲一区日韩在线| 亚洲高清久久| 中文亚洲字幕| 亚洲高清视频一区| 中文一区二区在线观看| 老司机精品久久| 一本一本a久久| 欧美亚洲尤物久久| 亚洲国产精品成人va在线观看| 亚洲国产精品第一区二区| 欧美日韩一区二区三区在线视频| 久久精品国产91精品亚洲| 欧美a级在线| 久久av二区| 欧美日韩国产美| 另类激情亚洲| 国产精品一区二区a| 亚洲国产老妈| 国内精品国产成人| 一级成人国产| 亚洲国产日日夜夜| 性欧美video另类hd性玩具| 亚洲伦理精品| 久久综合给合| 欧美一区二区三区另类| 欧美精品激情blacked18| 久久久人人人| 国产精品一区二区三区观看| 亚洲欧洲一级| 亚洲日本欧美日韩高观看| 欧美在线视频免费| 午夜精品视频在线| 欧美性大战xxxxx久久久| 亚洲国产高清高潮精品美女| 含羞草久久爱69一区| 亚洲欧美电影院| 午夜视频精品| 国产精品护士白丝一区av| 亚洲日本黄色| 日韩视频免费看| 免费在线欧美视频| 欧美国产第一页| 亚洲国产天堂网精品网站| 久久电影一区| 久久久久国产精品一区| 国产日韩欧美一区二区三区在线观看 | 一区二区三区视频观看| 免费日韩视频| 欧美激情中文字幕一区二区 | 午夜亚洲视频| 国产精品久久久久影院亚瑟| 在线午夜精品| 亚洲女性裸体视频| 国产精品午夜久久| 性欧美长视频| 玖玖玖国产精品| 亚洲激情小视频| 欧美激情一区二区三区全黄 | 亚洲经典自拍| 欧美成人免费va影院高清| 亚洲国产精品t66y| 99精品福利视频| 欧美日韩在线一区二区| 999在线观看精品免费不卡网站| 亚洲网址在线| 国产视频在线观看一区二区三区| 欧美亚洲综合网| 久久夜色撩人精品| 欧美啪啪一区| 一区二区三区成人| 欧美一区二区三区日韩视频| 国产婷婷色综合av蜜臀av| 久久精品人人爽| 亚洲精品美女在线观看播放| 亚洲午夜久久久久久久久电影院 | 宅男噜噜噜66一区二区 | 欧美一区二区三区免费视| 国产一区三区三区| 免费一级欧美片在线播放| 亚洲国产美国国产综合一区二区| 日韩一区二区精品在线观看| 国产精品久久久久婷婷| 久久福利资源站| 亚洲日本中文字幕区| 欧美一区二区视频网站| 在线播放日韩专区| 国产精品高潮久久| 久久综合色88| 亚洲综合色在线| 亚洲国产日韩欧美在线动漫| 亚洲欧美中文字幕| 亚洲精品123区| 国产精品女人毛片| 美女91精品| 性欧美大战久久久久久久久| 91久久精品美女| 久久免费精品视频| 亚洲欧美在线播放| 亚洲精品久久久久久久久| 国产精品免费电影| 欧美freesex8一10精品| 亚洲欧美一区二区视频| 亚洲国产天堂久久综合网| 久久黄色影院| 亚洲天堂av在线免费| 亚洲人成网站999久久久综合| 国产视频欧美视频| 国产精品高潮视频| 欧美日韩视频在线一区二区| 欧美好吊妞视频| 蜜桃视频一区| 久久天堂成人|