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

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

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

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() 方法。

測(cè)試代碼:使用同一端口

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;//端口號(hào)  
      
    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;//端口號(hào)

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ù)器均必須等待客戶端的第一次傳輸之后再?zèng)Q定是發(fā)送策略文件還是建立主連接。當(dāng) Flash Player 請(qǐng)求策略文件時(shí),它始終會(huì)在建立連接后傳輸以下字符串:

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

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

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

 

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

Feedback

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

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

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

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久久国产综合精品| 久久影音先锋| 美女91精品| 亚洲黑丝在线| 亚洲国产精品高清久久久| 亚洲国产片色| 一区二区三区免费看| 亚洲欧美日韩视频二区| 久久精品视频一| 欧美高潮视频| 国产精品一区二区女厕厕| 国产亚洲欧美另类中文| 亚洲精品激情| 午夜亚洲一区| 欧美国产一区二区三区激情无套| 99re66热这里只有精品4| 香蕉成人啪国产精品视频综合网| 美女脱光内衣内裤视频久久网站| 欧美激情亚洲综合一区| 国产精品揄拍一区二区| 亚洲精品视频在线观看网站| 久久成人免费网| 亚洲第一区在线| 午夜精品亚洲| 欧美视频一区二区在线观看| 尹人成人综合网| 午夜精品美女自拍福到在线| 欧美激情视频一区二区三区免费| 亚洲一区二区三区在线视频| 欧美高清成人| 亚洲国产高清aⅴ视频| 久久av二区| 9l国产精品久久久久麻豆| 老司机午夜精品视频| 国产精品乱码妇女bbbb| 日韩视频欧美视频| 久久亚洲色图| 亚洲欧美韩国| 欧美亚洲第一页| 一本色道久久综合狠狠躁的推荐| 免费久久99精品国产| 欧美在线视频网站| 国产乱码精品一区二区三区不卡 | 亚洲精品日韩激情在线电影| 欧美在线视屏| 国产自产精品| 久久―日本道色综合久久| 在线综合亚洲| 国产精品福利网站| 亚洲永久免费精品| 亚洲人精品午夜| 欧美一区二区三区在| 亚洲国产成人精品久久| 国产精品久久久久久久午夜 | 欧美激情亚洲自拍| 亚洲欧洲综合另类在线| 欧美福利视频| 欧美成人一区二区| 一级日韩一区在线观看| 亚洲另类自拍| 欧美网站在线| 久久亚洲欧美| 亚洲国产精品视频一区| 亚洲国产三级网| 欧美mv日韩mv国产网站app| 亚洲国内精品| 亚洲精品偷拍| 国产区在线观看成人精品| 久久久蜜桃一区二区人| 久久久99国产精品免费| 亚洲黄页一区| av成人激情| 国产亚洲欧美另类一区二区三区| 老司机精品视频一区二区三区| 久久人人爽爽爽人久久久| 亚洲日本电影在线| 在线视频你懂得一区| 国产婷婷一区二区| 亚洲国产精品精华液2区45| 欧美人与禽猛交乱配| 香蕉久久一区二区不卡无毒影院| 欧美在线观看一二区| 亚洲电影av| 99国产精品99久久久久久粉嫩| 国产精品美女主播在线观看纯欲| 午夜精品久久久久久久蜜桃app| 久久久www成人免费无遮挡大片| 亚洲人成啪啪网站| 亚洲午夜在线观看| 亚洲国产一区二区三区高清| 一区二区三区www| 在线观看日韩av先锋影音电影院| 亚洲精品久久久一区二区三区| 国产伦精品一区二区三区免费| 欧美激情黄色片| 国产精品系列在线播放| 亚洲第一精品在线| 国产一区二区三区久久久| 亚洲精品资源| 在线观看av一区| 亚洲欧美www| 一区二区三区鲁丝不卡| 久久久91精品国产一区二区三区| 亚洲私拍自拍| 欧美极品欧美精品欧美视频| 久久久久久91香蕉国产| 欧美日韩一区精品| 欧美激情亚洲自拍| 国产最新精品精品你懂的| 亚洲视频日本| 日韩五码在线| 亚洲视频精选| 麻豆成人在线播放| 欧美午夜视频| 欧美高清一区| 在线观看欧美一区| 久久福利毛片| 欧美亚洲自偷自偷| 欧美日韩亚洲一区二区三区在线| 免费永久网站黄欧美| 国产欧美精品一区二区三区介绍 | 在线一区二区视频| 免费一级欧美在线大片| 免费成人黄色片| 在线成人免费视频| 欧美一区二区三区四区在线观看| 亚洲欧美中文另类| 国产精品免费一区二区三区在线观看| 亚洲国产日本| 亚洲人成艺术| 欧美啪啪一区| 亚洲最新视频在线| 亚洲综合国产激情另类一区| 欧美日韩亚洲在线| 正在播放亚洲| 久久成人免费网| 国内精品久久久久伊人av| 久久不射中文字幕| 噜噜噜躁狠狠躁狠狠精品视频| 在线日韩一区二区| 欧美风情在线观看| 亚洲伦理在线免费看| 亚洲欧美日韩一区在线观看| 国产精品一区二区在线观看| 亚洲已满18点击进入久久 | 91久久精品国产91久久| 一区二区三区四区五区精品视频| 欧美日韩高清一区| 一区二区精品国产| 欧美在线播放| 在线欧美日韩国产| 欧美激情精品久久久| 中文亚洲视频在线| 久久精品一区二区三区四区| 狠狠色狠狠色综合日日小说| 欧美jizzhd精品欧美巨大免费| 制服丝袜亚洲播放| 麻豆9191精品国产| 91久久久久久| 午夜亚洲视频| 激情综合电影网| 欧美成年人视频网站欧美| 亚洲精品国产日韩| 久久久噜噜噜久噜久久| 99re国产精品| 国产欧美日韩三区| 久久综合色天天久久综合图片| 亚洲国产成人av| 国产精品免费网站在线观看| 久久久久久久久久久久久久一区| 亚洲国产成人av好男人在线观看| 亚洲欧美视频在线观看视频| 亚洲电影免费在线观看| 国产精品嫩草99av在线| 欧美在线一二三区| 亚洲美女性视频| 美女视频一区免费观看| 香蕉久久夜色精品国产使用方法| 久久精品成人一区二区三区蜜臀| 久久久久久精| 亚洲欧美文学| 在线欧美日韩| 欧美在线视频网站| 另类av一区二区| 91久久在线视频| 亚洲精品一区二区三区蜜桃久| 午夜精品国产更新| 国产精品一区二区视频| 亚洲欧美国产精品专区久久| 欧美一区二区三区在线看| 黑人一区二区三区四区五区| 亚洲一区久久久|