flash php socket通信_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);
原文:http://www.jb51.net/article/53799.htm
相关文章:

全线衰退:PC产业一枝孤秀
之三:全线衰退:PC产业一枝孤秀 在3C中,也许个人电脑(PC)产业算是当今中国最有希望的。中国的计算机工业号称已有50年历程,但成为民用产品的起始点应在30年前,与改革开放同时起步。1978年,国家成立了计算机工…

用Gogs在Windows上搭建Git服务
1.下载并安装Git,如有需求,请重启服务器让Path中的环境变量生效。2.下载并安装Gogs,请注意,在Windows中部署时,请下载MiniWinService(mws)版本。3.在MariaDB中创建一个命名为Gogs的数据库&#…

wamp安装多版本php,WampServer安装多个php版本
早期的WampServer安装多个版本php很简单,只需要单击php下的Get more...就行了,WampServer会自动导航到http://www.wampserver.com/addons_php.php下去安装php,但目前这种方式好像不行了,该页面找不到了,那么我们只能手…

利用Windows自带服务架设免费邮件服务器
在Windows Server 2003中带有完整的SMTP和POP3服务,并且能够支持有域和无域两种环境,非常便于中小型企业实施。今天,小编就以Windows Server 2003企业版为例带领大家架设一台免费的邮件服务器,希望能够对各位朋友学习邮件服务器提…

阿里首次开源深度学习框架X-Deep Learning
今年,各企业在开源路上的势头可以说是“你追我赶”,谁也不甘落后。6 月,小米宣布开源自己在移动端深度学习框架 MACE;9 月,腾讯 AI Lab 宣布开源一款自动化深度学习模型压缩与加速的框架——PocketFlow。双十一刚过&am…

应用基于资产的开发到 SOA 的服务中1
SOA 的主要原则之一是在整个 SOA 生命周期中将服务视为可重用资产。因此,务必在 SOA 中对服务应用正式的资产开发流程和指南。本文可帮助 IT 架构师、项目经理和 SOA 管理员全面了解一些主要 IBM 产品如何协作来帮助有效地在 SOA 中将服务作为可重用资产进行创建、使…

用Piranha来实现WEB的负载均衡
简述:利用(LVSPiranha)基于完整开源软件的架构可以提供一个简单的负载均衡及高可用的服务架构。LVS 集群采用 IP 负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率(在DR模式下),将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故 障,…

SQLServer数据库试题及答案
选择题:(20分) 1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(___) A、只存在一对多的实体关系,以图形方式来表示。 B、以二维表格结构来保存数据,在…

php中怎样阻止网页进行跳转,阻止php页面跳转方法
阻止php页面跳转方法一、 header 函数header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。参数void header (string string [,bool replace [,int http_response_code]])可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。…

张宏江:人工智能的长远发展需要有人坐冷板凳
从金山 CEO 退休两年后,除了在源码资本任职投资合伙人,张宏江又在刚刚成立不久的北京智源人工智能研究院担任首届理事长,致力于推动不同行业分享大数据,让从事基础研究院所和 AI 的创业公司更容易获得数据。作为一个横跨产学研、投…

Python 中的进程、线程、协程、同步、异步、回调(一)
在进一步之前,让我们先回顾一下各种上下文切换技术。 不过首先说明一点术语。当我们说“上下文”的时候,指的是程序在执行中的一个状态。通常我们会用调用栈来表示这个状态——栈记载了每个调用层级执行到哪里,还有执行时的环境情况等所有有关…

php iis6 安装ssl证书,在IIS下部署SSL证书实现HTTPS
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。谷歌已经制定了一项长远的计划,它的最终目标是将所有通过HTTP协议呈现的网页标为“不安全”,对于站长来说,部署SSL证书来迁移到HTTPS是一个现实和重要的问题,那么…

今晚8点直播 | 微软亚洲研究院副院长刘铁岩:机器学习技术前沿与未来展望
人工智能正受到越来越多的关注,而这波人工智能浪潮背后的最大推手就是“机器学习”。机器学习从业者在当下需要掌握哪些前沿技术?展望未来,又会有哪些技术趋势值得期待? AI科技大本营联合华章科技特别邀请到了微软亚洲研究院副院…

11月最佳机器学习开源项目Top10!
整理 | Jane出品 | AI科技大本营过去一个月,我们从近 250 个机器学习开源项目中挑选出了最受大家关注的前十名。这些项目在 GitHub 上平均 Stars 数为 2713。这些项目涉及由 Google AI Research 开源的 BERT 预训练模型、DeepMind 开源的图网络库、Facebook Researc…

notepad php发布网站,谈谈如何把WordPress部署到服务器上
第一次部署本网站,稀里糊涂差不多用了大半天,真是惭愧呀,很想狠狠的抽自己一下。老子信了你的邪!!!废话不多说,大概的步骤是:前奏1.注册域名--云主机购买--域名备案--域名解析(dodo也是首次对这…

单列索引和复合索引的使用
表结构: mysql> desc car; ----------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | ----------------------------------------------------------- | id | int(3) | NO …

java学习1
工作了很久,以前学的技术都差不多忘了,为了不荒废技术,现在开始起学习java,并将学习中遇到的问题加以记录。问题1、Exception in thread "main" java.lang.NoClassDefFoundError解决方法:这类问题导致的可能…

ICLR 2019高分论文抢先看,谁是第一?
作者 | 非主流出品 | AI科技大本营 ICLR 2019 将于明年的 5 月 6-9 日在美国路易斯安那州的新奥尔良市举行。本届大会共收到近 1600 篇投稿,相比 ICLR 2018 的 935 篇,以及 ICLR 2017 的 490 篇,几乎每年都在翻番。此前,ICLR 一直…

招行java开发面试,面经:Java后台开发-招行网络科技
一面:留学党的惯性凌晨面试1内容:自我介绍Final关键字数据库(mysql/oracle二选一)数据库调优脏幻不可重复读(mybatis/radis二选一)基本操作(批量插入/如何保证一致性)几种创建新对象方法我成功引导向了反射的诸多应用TCP/UDP老生常谈的区别和三挥四握问题…

puppet相关问题统计
1、 notice: Run of Puppet configuration client already in progress; skipping 解决方法: 部分情况下puppet服务会无法启动,且会提示puppet已经启动,这个时候需要删除一个文件。 rm /var/lib/puppet/state/puppetdlock …

WebForm中DataGrid的20篇经典文章
1、DataGrid动态模板列更新数据并且分页的例子 http://www.cnblogs.com/lovecherry/archive/2005/03/26/126102.html 2、DataGrid动态添加模板列的一个例子 http://www.cnblogs.com/lovecherry/archive/2005/03/25/125526.html 3、DataGrid实现增删(带提示ÿ…

Kotlin基本语法和使用
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性。 Kotlin是使用Java开发者的思维被创建的,Intellij作为它主要的开发IDE。对于 Android开发者&#…

java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...
Spring MVC Controller中的一个读入和返回都是JSON的方法怎么获取javax.validation注解的错误信息?本帖最后由 LonelyCoder2012 于 2014-03-14 03:16:27 编辑标题可能有点绕,看代码就明白了:这是我的User类:import org.hibernate.…

三摄正普及,四摄在路上?谷歌逆天AI算法,只做单摄虚化
作者| 琥珀出品| AI科技大本营想要提高拍照效果,想必对于多数手机厂商而言,给手机塞进更多的摄像头似乎成了当前主流做法,例如“普通摄像头景深摄像头”、“黑白彩色摄像头”、“广角长焦摄像头”……不过,偏偏有这么一家企业反其…

TBContact -- 导出ThunderBird邮件地址本
我写的一个导出ThunderBird邮件地址本的小工具,使用了多线程。其功能有:1 自动检测系统是否装有ThunderBird,并列出所有的地址本文件*.mab。2 可以手工指定一个或多个地址本文件。3 自动检测每个地址本文件里的联系人个数。4 导出每个地址本文…

Linux基础知识入门测试
记录于51CTO的测试题: 第 1 题 Linux中,默认的管理员帐户名称是 A. Administrator B. Admin C. root D. user 第 2 题 在Linux中,如果在文本模式下,可以通过下述的方法进入x window A. 执行startx B. 执行start …

jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片
当前位置:我的异常网 Java Web开发 请教JSP中怎么向MySql中存入和取出图片请教JSP中怎么向MySql中存入和取出图片www.myexceptions.net 网友分享于:2015-08-27 浏览:138次请问JSP中如何向MySql中存入和取出图片?1 直接把图片存入数据库2 把图片的…

开源 | IBM、哈佛共同研发:Seq2Seq模型可视化工具
作者 | Ben Dickson译者 | 刘旭坤编辑 | Jane出品 | AI科技大本营近年来随着深度学习和神经网络技术的发展,机器翻译也取得了长足的进步。神经网络结构越来越复杂,但我们始终无法解释内部发生了什么,“黑箱问题”一直困扰着我们。我们不清楚程…

h3c l2tp ***配置
远程用户-------internet-------F100 采用l2tp方式sysname XXXX //设备名称#l2tp enable //开启l2tp功能 #firewall packet-filter enablefirewall packet-filter default permit#undo connection-limit enableconnection-limit default den…

Blockchain与Big Data将碰撞出怎样的火花?
区块链技术热潮席卷全球,正在与各种新兴技术深入融合——大数据也不例外,卓有远见的企业已将区块链作为未来发展重点。数据开放的大势下,如何保护隐私与安全是大数据领域的难点与挑战。凭借可信与安全的特性,区块链令越来越多高价…