天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php與flash as3 socket通信傳送文件實現代碼

前段時間在flashseer看到有人提到:可以通過socket方式傳送swf文件,讓用戶無法獲取到swf文件… 當時還沒有出as3的反編譯,所以對程序的保護沒有在意.隨著反編譯程序的平民化,不希望別人看到源代碼的朋友就比較著急…

通過socket方式傳送swf文件來避免泄漏源代碼的思路(只適用as3): 讓主程序的loader(前臺swf)通過socket連接到后臺程序,然后請求需要的主程序文件.后臺讀取主程序數據通過socket發送給主程序的 loader.前臺swf適用Loader.loadBytes方法顯示主程序文件.

下面是測試的源程序:

package {import flash.display.Sprite;import flash.NET.Socket;import flash.events.*;import flash.errors.IOError;import flash.display.Loader;public class SocketTest extends Sprite {  public function SocketTest() {  var socket = new Socket();  socket.connect("localhost", 5277);  socket.addEventListener(Event.CLOSE, closeHandler);  socket.addEventListener(Event.CONNECT, connectHandler);  socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);  socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);  socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);  var response:String;  function writeln(str:String):void {   str+="";   try {   socket.writeUTFBytes(str);   } catch (e:IOError) {   trace(e);   }  }  function sendRequest():void {   trace("sendRequest");   response="";   writeln('bin');   socket.flush();  }  function readResponse():void {   //接受數據   var str:String=socket.readUTFBytes(socket.bytesAvailable);   response+=str;   //當數據以end結束的時候,數據傳輸結束   if (StringUtil.endsWith(str,'end')) {   response=response.substr(0,response.length-3);   //把字符串轉換為ByteArray   var ba=Base64.decodeToByteArray(response);   //trace('bytearray=====',ba);   var l:Loader = new Loader();   //從 ByteArray 對象中所存儲的二進制數據中加載。   l.loadBytes(ba);   //trace(l.content);   addChild(l);   }  }  function closeHandler(e:Event):void {   trace("Socket closed! ");  }  function connectHandler(e:Event):void {   trace("Socket connected!");   sendRequest();  }  function ioErrorHandler(e:IOErrorEvent):void {   trace("IOError!");  }  function securityErrorHandler(e:SecurityErrorEvent):void {   trace("SecurityError!");  }  function socketDataHandler(e:ProgressEvent):void {   trace("Socket have data!");   readResponse();  }  }}}

php:

//后臺scoket程序,由于適用php寫比較簡單,就用php寫了.//error_reporting(E_ALL);error_reporting(0);set_time_limit(0);ob_implicit_flush();$address = 'localhost';$port = 5277;if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {echo 'socket_create() failed: reason: ' . socket_strerror($sock) . '/n';}if (($ret = socket_bind($sock, $address, $port)) < 0) {echo 'socket_bind() failed: reason: ' . socket_strerror($ret) . '/n';}if (($ret = socket_listen($sock, 5)) < 0) {echo 'socket_listen() failed: reason: ' . socket_strerror($ret) . '/n';}echo 'connect…………….';do {if (($msgsock = socket_accept($sock)) < 0) {  echo 'socket_accept() failed: reason: ' . socket_strerror($msgsock) . '/n';  break;}do {  socket_recv($msgsock, $buf, 2048, 0);  if ($buf == "") {  socket_close($msgsock);  echo "some one quit";  break;  } else if ($buf == "bin") {  //讀取主程序數據  $f = fopen('main.swf','r');  $data = fread($f,filesize('main.swf'));  fclose($f);  //轉換為字符串  //echo base64_encode($data);  $talkback = base64_encode($data).'end';  }  //發送  socket_send($msgsock, $talkback, strlen($talkback),0);} while (true);socket_close($msgsock);} while (true);socket_close($sock);

php技術php與flash as3 socket通信傳送文件實現代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 午夜男女爽爽羞羞影院在线观看 | 色迷迷电影 | 日本美女bb | 伊人久久综在合线亚洲 | 91精品免费久久久久久久久 | 2021乱码精品公司 | 亚洲成人一区二区 | 亚洲精品自在线拍2019 | 无码射肉在线播放视频 | 漂亮美女2018完整版 | 最近的中文字幕2019国语 | 国产视频这里只有精品 | 怡春院欧美一区二区三区免费 | 久久66热在线视频精品 | AV午夜午夜快憣免费观看 | 午夜福利试看120秒体验区 | 俄罗斯美女啪啪 | 推倒美女总裁啪啪 | 久久99精品AV99果冻 | 色偷偷av男人的天堂 | 中俄两军在日本海等上空战略巡航 | 国产精品7777人妻精品冫 | 美女脱衣服搞鸡 | 婷婷亚洲AV色香蕉蜜桃 | 国产中文字幕免费观看 | 国产成人精品自线拍 | 欧美精品色视频 | 热综合一本伊人久久精品 | 国产激情视频在线观看 | 午夜天堂AV久久久噜噜噜 | yellow在线观看免费直播 | 高跟丝袜岳第一次 | 亚洲欧美日韩精品久久奇米色影视 | 久久re这里精品在线视频7 | 中字幕久久久人妻熟女天美传媒 | 麻豆精品传媒一二三区 | HEYZO精品无码一区二区三区 | 扒开女人下面使劲桶动态图 | 506070老熟肥妇bbwxx视频 4虎最新网址 | 最新国产av.在线视频 | qvod 艺术片 qvod 韩国 |