日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flex Socket 安全沙箱问题解决

發(fā)布時(shí)間:2024/9/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flex Socket 安全沙箱问题解决 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Flex使用Socket與C++通訊時(shí)遇到了安全沙箱問題,NND,折騰我半天,這是我的解決方法:

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

?

服務(wù)器端代碼如下:

#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{//Echoif(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);} }

  

轉(zhuǎn)載于:https://www.cnblogs.com/fuland/p/3854352.html

總結(jié)

以上是生活随笔為你收集整理的Flex Socket 安全沙箱问题解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。