gpt4 book ai didi

php与flash as3 socket通信传送文件实现代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php与flash as3 socket通信传送文件实现代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前段时间在flashseer看到有人提到:可以通过socket方式传送swf文件,让用户无法获取到swf文件… 当时还没有出as3的反编译,所以对程序的保护没有在意.随着反编译程序的平民化,不希望别人看到源代码的朋友就比较着急… 。

通过socket方式传送swf文件来避免泄漏源代码的思路(只适用as3): 让主程序的loader(前台swf)通过socket连接到后台程序,然后请求需要的主程序文件.后台读取主程序数据通过socket发送给主程序的 loader.前台swf适用Loader.loadBytes方法显示主程序文件. 。

下面是测试的源程序

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//后台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与flash as3 socket通信传送文件实现代码的文章就讲到这里了,如果你想了解更多关于php与flash as3 socket通信传送文件实现代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com