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

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>
            久久这里只有| 一区二区三区 在线观看视| 另类成人小视频在线| 欧美在线观看网址综合| 午夜精品区一区二区三| 亚洲一区欧美激情| 久久精品在线观看| 欧美福利视频网站| 欧美网站大全在线观看| 国产日产亚洲精品| 亚洲国产综合在线| 亚洲免费在线| 美女被久久久| 日韩午夜av电影| 欧美在线网站| 欧美激情欧美激情在线五月| 国产精品成人在线观看| 国产综合一区二区| 亚洲视频综合| 99在线视频精品| 亚洲欧美影院| 欧美肥婆在线| 亚洲小说春色综合另类电影| 久久久久久亚洲精品中文字幕 | 午夜精品久久久久| 麻豆成人91精品二区三区| 欧美亚一区二区| 亚洲国产欧美日韩精品| 欧美一级成年大片在线观看| 亚洲国产成人91精品 | 欧美精品三级日韩久久| 国产精品日韩在线观看| 亚洲国产欧美日韩精品| 欧美在线观看www| 亚洲日本激情| 久久久久网址| 国产一区二区按摩在线观看| 在线亚洲美日韩| 欧美凹凸一区二区三区视频| 亚洲欧美在线看| 国产精品电影观看| 一区二区三区日韩精品| 欧美国产亚洲精品久久久8v| 欧美一区二区三区免费视| 国产精品chinese| 一区二区av在线| 欧美福利网址| 久久一区二区三区国产精品| 国产色婷婷国产综合在线理论片a| 一本色道久久综合亚洲精品不卡 | 一区二区三区产品免费精品久久75 | 久久久久九九视频| 国产一区二区视频在线观看| 午夜久久资源| 亚洲欧美区自拍先锋| 国产精品久久久亚洲一区| 亚洲视频在线免费观看| 99视频精品| 国产精品播放| 欧美一区二区网站| 欧美尤物一区| 伊人久久噜噜噜躁狠狠躁| 蜜桃av一区二区| 久久人人超碰| 亚洲三级影片| 亚洲精品一区在线观看香蕉| 欧美精品一区二区三区视频| 中日韩午夜理伦电影免费| 亚洲作爱视频| 中文日韩在线| 亚洲图片欧美日产| 国产伦精品一区二区三区免费| 性视频1819p久久| 欧美一区二区三区免费观看视频| 国产亚洲欧美激情| 蜜臀99久久精品久久久久久软件| 久久五月婷婷丁香社区| 亚洲国产专区校园欧美| 亚洲精品在线二区| 国产九区一区在线| 美日韩精品免费观看视频| 男同欧美伦乱| 亚洲欧美国产一区二区三区| 欧美亚洲一区二区三区| 亚洲二区精品| 一本色道久久| 伊人夜夜躁av伊人久久| 亚洲美女少妇无套啪啪呻吟| 国产人妖伪娘一区91| 欧美二区视频| 国产精品影院在线观看| 欧美电影电视剧在线观看| 欧美色道久久88综合亚洲精品| 午夜日韩福利| 欧美顶级艳妇交换群宴| 欧美在线中文字幕| 欧美精品999| 久久综合久久综合久久综合| 欧美风情在线观看| 久久不见久久见免费视频1| 欧美成人自拍| 久久九九免费| 欧美色道久久88综合亚洲精品| 久久久国产一区二区| 欧美日韩亚洲不卡| 美女视频黄 久久| 国产美女精品一区二区三区 | 亚洲综合三区| 亚洲精品久久视频| 欧美一级理论片| 亚洲专区一区| 欧美精品三区| 欧美高潮视频| 一区二区视频欧美| 欧美一区二区三区免费在线看 | 亚洲福利一区| 午夜久久久久久| 亚洲欧美久久久| 欧美成人一区二区在线| 久久亚洲精品网站| 国产一区二区0| 亚洲专区在线视频| 亚洲影院在线观看| 欧美日韩在线另类| 91久久久久久国产精品| 亚洲国产精品专区久久| 久久噜噜亚洲综合| 久久网站免费| 国内伊人久久久久久网站视频| 午夜免费在线观看精品视频| 国产精品毛片a∨一区二区三区|国| 亚洲精品欧美| 牛人盗摄一区二区三区视频| 免费精品99久久国产综合精品| 国内久久精品| 午夜一区不卡| 久久精品中文| 黄网站免费久久| 久久久夜夜夜| 欧美激情久久久| 日韩一区二区精品在线观看| 欧美精品激情blacked18| 亚洲日本电影| 亚洲一区二区三区四区五区午夜 | 欧美日韩视频一区二区三区| 亚洲精品免费一二三区| 中文日韩在线视频| 国产精品色婷婷| 欧美中文在线观看| 欧美激情精品久久久久久大尺度| 亚洲日韩欧美一区二区在线| 欧美精品电影在线| 亚洲一二三四久久| 久久精品亚洲乱码伦伦中文| 伊人蜜桃色噜噜激情综合| 欧美不卡一卡二卡免费版| 亚洲另类在线视频| 欧美综合77777色婷婷| 伊人夜夜躁av伊人久久| 欧美精品网站| 性xx色xx综合久久久xx| 亚洲第一二三四五区| 亚洲视频欧洲视频| 国产综合色一区二区三区| 欧美大片免费观看在线观看网站推荐| 亚洲精品视频一区二区三区| 欧美在线视频网站| 亚洲人成网站在线观看播放| 国产精品麻豆成人av电影艾秋 | 美女在线一区二区| 一区二区三区日韩欧美精品| 久久免费的精品国产v∧| 亚洲免费精品| 国外成人网址| 国产精品a久久久久| 久久综合狠狠综合久久综合88| 一区二区三区四区五区精品| 欧美v日韩v国产v| 欧美一区1区三区3区公司| 日韩午夜av在线| 韩国三级在线一区| 国产精品久久久久7777婷婷| 久久综合精品一区| 欧美一区二区三区在线观看| 亚洲免费观看高清完整版在线观看| 久久久亚洲欧洲日产国码αv | 亚洲精品久久久久久下一站 | 久久性色av| 亚洲主播在线| 99re热这里只有精品视频| 免费久久99精品国产自在现线| 亚洲欧美日韩在线高清直播| 一本在线高清不卡dvd| 亚洲国产免费看| 国内欧美视频一区二区| 欧美性开放视频| 欧美日韩成人一区二区| 美乳少妇欧美精品| 久久综合久久综合久久| 欧美制服丝袜|