avatar
文章
89
标签
34
分类
4

主页
时间线
扫番报告
幻想的境界
主页
时间线
扫番报告

幻想的境界

ONScripter for Android
发表于2011-12-03|Android游戏
很久之前就接触了某个开源项目,那时候不知道开源项目与什么意义,但是它上面有一句话令我印象深刻“开源传万世”。在开源领域最伟大和成功的应该算是Linux,虽然从开始这个对我们日常生活没什么影响,但是在我们没有主意到的地方Linux真的是奇迹一般的存在。而现在它突然来到我们的面前,影响了整个移动通信行业,那就是Android。 同人领域不是很了解,毕竟国内同人的定义还是非常狭窄的,看看CM的各种CD和游戏吧,不仅仅是简单喜好,已经成为一种职业,一个产业。很久之前就有了NScripter这种东西,后来也有了ONScripter。详细的介绍可以看这里,CSDN达人的介绍。《谈谈AVG游戏的Android移植(NScripter与吉里吉里)》。 接下来是NScripter的开源实现“ONScripter page”,ONS的基础。这个是全平台的ONScriper解决方案。之所以可以全平台,是因为使用SDL(详细介绍可参看上段CSDN文章),文件列表如下,在linux下使用make -f Makefile,Linux进行编译,当然要满足官方规定的一些依赖关系。 之后是Android“ON ...
socket编程总结
发表于2011-07-26
昨天进行了一些测试,所以觉得可以写一个总结性的文字了。当然了,这个也就是归纳性质的,把之前写的东西统统的串在一起,在稍微高一点的事视野中描述一下自己对socket,特别是基于java的socket的理解和看法。另外这个东西也是一个循序渐进而定过程,也不期望这次一下子完全分析的很透彻,而是一个不断晚上的过程,在以后的工作学习中,如果还可以遇到类似的问题,或者还有机会写到这种代码也许就会有更新和更深层次的理解吧。 首先,socket这个东西我觉得是一个非常基础的协议。绝大部分通信,任意两台计算机,甚至是本机的两个程序之间都可能是基于socket。同时在socket这个基础上自然有派生出多种多样的协议和应用,比较著名和容易理解的就是HTTP服务器了。其就是架构在socket的基础上,更重要的是socket是一个标准,所以不同语言和程序之间的调用和通信更是socket的实用之处,如JDBC。 接下来就是正题了,本人之一做java方面,所以对系统底层不是很了解,所以什么windows的IOCP,linux的poll/epoll/aio之类,也仅仅是听说过的程度,另外JDK ...
java基于TCP的socket数据包拆分方法
发表于2011-06-25|Java
前不久写了socket相关的程序,服务器是java,客户端是flex。一开始就想过所谓的拆分数据包的问题,因为数据包结构是自己定义的,因此简单的写了几行数据包的验证。开发测试中完全没有发生什么情况,但是发布到外网之后却出现一些非常奇怪的问题,其中最主要的就是通信过一定时间之后,数据包验证处理模块就会出错然后就抛弃一部分数据包,这就是所谓的“丢包”吧,但是我使用的是基于TCP的socket,所谓因为网络问题导致的数据包没有发送与接收成功这种情况应该是不会出现的。 看了几篇文,发现这种现象被称作“粘包”,我觉得还是挺贴切的。经过一定时间的思考和测试,大致了解了其中的原理,按照现在的情况来看,应该是没什么问题了。于是在此总结一下,如果哪天我发现一些新问题或更好的方法,还是会来继续补充这篇文章的。当然各位路过的前辈觉得其中存在错误什么的也请指出。 首先在讲程序之前,还是先说一下TCP通信。TCP和UDP的最大区别就是TCP维护了连接状态,而这个状态我们可以理解为一个畅通的流通道,即stream,当然流的传输内容归根结底还是byte。于是将流的通信进行假设,假设存在一条引水管道,从远方输水 ...
Java Native Access(JNA)
发表于2011-02-26|Java
LINUX平台下的mplayer一般被封装成smplayer,其实只是个外壳而已,内在的还是mplayer,与其同样著名的还有一个开源的播放器,总体的功能比mplayer要强大的多,关键是其发布的程序中附带的有头文件。有了头文件就可以直接使用JNA绕过外壳直接调用播放器的核心了。当然谷歌代码上有一个专门封装这个的项目,并附带demo,有兴趣的可以去找一下,此项目命名遵循我以前说的java封装的通用命名方式。 新的开始,JNA的话现在的版本是3.2.7。好像更新比较快的样子,项目主页http://java.net/projects/jna/,官方的代码和API全部都放在SVN上,于是我把3.2.7的HTML格式的API拿出来供查询和索引使用,地址如下http://api.suwish.com/#jna。 正文,说道JNA就要说一下JNI了,JNI貌似是最早的JAVA本地接口解决方法,在JDK1.1的时候正式加入java平台,它以native关键字标识本地的方法,JDK的源码已有很多native的方法,甚至是一些简单的加减运算也是调用本地的C代码执行的。JNI的大致写法如下。比如 ...
php调用java方法
发表于2011-01-26|Java
由于某些原因在php里面需要调用某第三方的jar文件,于是找到了JavaBridge这个东西。 就像之前我说的那样,不同语言之间的相互调用最常用和最易于使用的就是使用第三方协议,而这之中最常用的就是Socket,所以当我看到这个东西提供的就是一个jar,于是我想,这难道是Socket通信吗? 目前提供了几种方式,如java应用程序方式和javaweb方式,即JSE和JEE方式。于是简单的测试一下,基本没有问题,于是今天先写一个东西记录一下,过几天忙完了在仔细测试一下。 方式一:Java Desktop Apps ,我觉得应该叫applacation。 简单的测试如下,java代码 123456789101112131415161718package bridge;import javax.swing.JOptionPane;public class HelloWorld { public static final String JAVABRIDGE_PORT = "8087"; static final php.java.bridge.JavaBr ...
java媒体处理解决方案之MPLAYER
发表于2011-01-15|Java
对播放器有所了解的朋友,我相信对于mplayer这个开源的播放器自然是不会陌生的吧,这也是我最喜欢的播放器,主要原因就是简洁、功能强大、绿色、跨平台、万能。 本文介绍java如何调用mplayer(我的指的是内嵌mplayer到java应用程序)。说道java调用第三方程序分为直接调用和间接调用两种。这里说的直接调用指的是使用jvm管理第三方程序的调用方式,间接调用就是通过一些工人的协议达到通信的目的,进而实现调用。 直接调用又可使用直接调用第三方程序的方式,例如win下面的exe,这种方式实际就是让exe程序的进程处于jvm的控制之下(再次我也不说java控制进程的各种困难之处了),另外就是代码级的调用比如jni,JNI可能对于大多数人来说比较困难,那么久更加简单的JNA方式调用,JNA的话,你只需要对方程序的一个头文件,然后java映射一个(不知道这样说是不是恰当),对象指向dll即可,这对开源程序来说非常方便,对于闭源软件的话就需要对方提供接口了,比如对方告诉你某dll里面有某个方法,然后同样适用JNA映射对象到dll,就可以实现调用了,当然并不需要知道此dll里面的所有方法 ...
java媒体处理解决方案之FMJ
发表于2011-01-14|Java
首先声明,本人不看好这种方式,于是没有深入研究。 FMJ项目入口为:net.sf.fmj.ui.FmjStudio。main如下: 1234567891011121314151617181920212223242526272829System.setProperty("java.util.logging.config.file", "logging.properties");LogManager.getLogManager().readConfiguration(); if (!ClasspathChecker.checkAndWarn()){ // JMF is ahead of us in the classpath. Let's do some things to make this go more smoothly. logger.info("Enabling JMF logging"); if (!JmfUtility.enableLogging()) logger.wa ...
java基于nio的socket通信
发表于2010-12-25|Java
JAVA的NIO,各种介绍都是显示如何如何的好,别的不知道,nio的socket确实写得不少,个人感觉在nio下的socket就是实现了异步通信而已,只是介绍过于复杂,当初第一次接触,真是被吓住了。但是呢,这里面的弊端也没有看到谁出来说一下,真是的。 话说前几天同学让帮忙写一个类似聊天室的东西,但是前几天沉迷wp的主题设计去了,完全忘记了,今天终于想起来。于是开写,用nio,因为最近对这个比较熟。 首先是服务端代码(当然了,这只是类似教学程序的东西,写得可能有些粗糙) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475public void service() { while(true){ try{ System.err.println("Service"); ser ...
flex安全沙箱问题
发表于2010-12-04|Java
所谓“安全沙箱”,其实是flex的一种安全策略,这确实给不少初学者造成很大程度上的困难。 以socket为例,网站也同理。建立socket,前提是flash文件在浏览器中运行安全沙箱才会其作用,如果直接使用本地flash播放器运行则不会出现安全沙箱问题。 123456789101112131415161718192021222324//添加socket的监听方法private function configureListeners():void{ socket.addEventListener(Event.CLOSE, closeHandler); socket.addEventListener(Event.CONNECT, connectHandler); socket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); socket.addEve ...
1…89
avatar
Min
Never can we suspend the time, Having to leave the tracks behind
文章
89
标签
34
分类
4
最新文章
使用MBG的代码生产思路
使用MBG的代码生产思路2023-03-28
Spring Security 升级到 6.0
Spring Security 升级到 6.02023-03-24
Spring Security 开篇
Spring Security 开篇2023-03-18
接口同步wiki.js
接口同步wiki.js2022-10-14
使用 Wiki.js 初步构建知识库
使用 Wiki.js 初步构建知识库2022-09-24
分类
  • Android16
  • Java15
  • 扫番36
  • 游戏2
标签
VR 树莓派 安全 python 小程序 SpringSecurity tensorflow 设计 jsoup MyBatis Google Flex 东方 ONS Gradle pytorch 知识管理 Ingress Node.js 运动 Wiki 机器学习 Socket 数据库 Milvus 算法 低代码 微信 自然语言处理 图片搜索 Linux web Spring Ubuntu
归档
  • 三月 20233
  • 十月 20221
  • 九月 20222
  • 六月 20222
  • 五月 20221
  • 二月 20221
  • 十月 20211
  • 二月 20211
©2010 - 2023 By Min
框架 Hexo|主题 Butterfly