最近研究页游加速器,其原理就是在玩家本地开启一个webServer,游戏客户端Loader把资源加载后,会把文件上传到本地webServer,以便玩家下次加载资源,直接从本地读取。体验端游一般的感觉。
1、二进制上传
总来来说就是模拟构造一个类似web Form表单上传文件的一组数据。具体代码请参考《AS3 下通过HTTP协议 实现Form方式实现二进制文件上传》http://blog.csdn.net/zttjhm/article/details/12831505 。友情提示:文章里面代码有几处拼写错误,比如“boundary”他给写成“boundry”,会导致服务服务器说没有文件上传的错误。
2、从Loader中提取真实文件的Bytes
远程资源文件被Loader从远程服务器加载到FlashPlayer后,会在原有的字节前面和尾部添加了一些额外的字节。如果直接获取myLoader.contentLoaderInfo.bytes,然后上传给服务器,服务器收到的文件要比原始的文件要大,且无法正常使用。
通过观察,发现同种类型的文件,增加的字节数是一致的。比如所有PNG图片增加的字节数都是62.
于是,我用一个二进制文件编辑器去对比原文件。通过二进制对比,可以发现某些类型的文件增加的字节码是一致,可以根据规律,对文件进行二进制进行还原。还原后再上传到指定服务器,进行存储。