11 2009 档案
摘要:一、sgs Eclipse项目的建立1、下载最新的sgs-server-dist-0.9.11,解压后放在C:\Sun\sgs_server\0.9.11。2、在C:\Sun\sgs_server\0.9.11下建立项目文件夹webApp。3、在webApp下建立eclipse项目test014、在test01下建立lib,conf文件夹5、将C:\Sun\sgs_server\0.9.11\li...
阅读全文
摘要:The AppListener应用程序监听器 上面我们已经有了一个世界的管理对象,它由一个房间管理对象,一个剑的管理对象和一对玩家的管理对象。然而我们第一次开始这个游戏的时候,世界的管理对象并不是像这样的。实际上它和下面一样:这展示了什么,这是一个空的。怎样在玩家第一登陆的时候将管理对象存放到对象仓库中呢? 答案是通过一个特定的管理对象调用AppListener(应用程序监听器) ,在这个App...
阅读全文
摘要:Managed Objects and Managed References管理对象和管理关系 数据管理对象主要是一个持久化对象的集合,存储在一个叫做对象仓库的池中。和一个正常的Java 对象一样,每个对象都包含一个方法和其自己的数据。要成为一个管理对象,这个对象就要实现ManagedObject(管理对象的接口)和Serializable(序列化接口)。一个管理对象不会成为一个对象存储仓库池中...
阅读全文
摘要:Tasks and Managers任务和管理者: 从PDS 应用开发者的角度来说,PDS 应用执行在一个封闭的单线程的,事件驱动模型中。通过句柄传递事件实现编码对数据的修改,对于编写代码的程序员来说就好像是在修改自己的数据一样。因此,执行程序是一个平稳竞争和弱死锁的。在大多数情况下,没有必要 通过的代码,事实上,在管理数据对象是经常使用synchronized 关键字容易产生不稳定的bug。...
阅读全文
摘要:Darkstar 游戏服务器支持下列的硬件/操作系统组合: 1、 Windows XP on 32-bit processors 2、 Mac OS X 10.4.x on PowerPC or Intel processors 3、 Red Hat/Fedora Core Linux on 32-bit x86 processor 在一些平台(Windows和Linux)上。你可能需要安装或...
阅读全文
摘要:1.1 多人游戏 你对于多人在线游戏一定有着绝妙的创意。可能它是一个虚拟的世界,源自于你超级喜爱的电视节目中,或者它干脆就是一个你和你的朋友们拥有的在线保龄球联盟。无论如何,真正急待解决的问题在于,相对于奇思妙想来说,真正构建一个大型的多人在线网络游戏,它竟是如此的复杂,以致于许多具有天马行空的伟大创意 最后却只能在历史的车轮中无奈地烟消云散。Darkstar解决了这个棘手的障碍,它提供了一组易于...
阅读全文
摘要:SGS 提供的主要功能 : 服务器端的扩展 : 传统的扩展方法是将整个游戏区域分成多个区 , 不同的区运行在不同的游戏服务器上 . 这带来两个问题 , 一个是处于不同区的玩家不能互相交互 , 另外一个是如果某个区发生的动作较少时 , 会出现服务器资源未被充分利用的情况 . 而在 sgs 的处理方式下 , 所有的处理被分割成为一个个小的执行单元 ( 称为 task), 这些 task 可以在组成网...
阅读全文
摘要:服务器端:red5的项目的建立与tomact非常的相似. 1、在 Red5的安装路径C:\Program Files\Red5\webapps下建立自己的项目文件夹: 2、将C:\Program Files\Red5\doc\templates\myapp下的文件夹WEB-INF复制到自己的项目中,WEB-INF里是red5主要的项目配置文件。3、 在WEB-INF下建立classes以及src文...
阅读全文
摘要:Red5是一个采用Java开发开源的Flash流媒体服务器。它支持: • 把音频(MP3)和视频(FLV)转换成播放流; • 录制客户端播放流(只支持FLV); • 共享对象; • 现场直播流发布; • 远程调用。Red5的官方网站是http://www.osflash.org、 Red5的主要功能和ADOBE公司的 FMS类似,提供基于...
阅读全文
摘要:这篇文章开始于对Adrian Parr博客中AS3 Code Libraries一文的翻译,虽然开源AS3 Library列表的文章不少,翻译这篇是因为感觉里面大多数东西都是比较著名的,我能用得到的,所以翻译整理一下以备日后不时之需。 对原有的列表进行了部分删减。 对于library的评注和截图将不断添加。 3D引擎 注:对于3D引擎,渲染的效率和支持的渲染功能是很重要的,然而 在短短的文章中根本...
阅读全文
摘要:JavaPHPRPC是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。 目前该协议的最新版本为 3.0。该版本目前已有以下几种语言的实现:ASP:提供 JScript 和 VBScript 两种语言的支持。ActionScript:提供 ActionS...
阅读全文
摘要:http://digitechlog.com/2008/10/19/the-list-of-actionscript-library.htmlPapervision3Dhttp://blog.papervision3d.org/Away 3Dhttp://www.away3d.com/Sandy 3Dhttp://www.flashsandy.org/Alternativa Platformhtt...
阅读全文
摘要:通过flash 9新功能来实现全屏技术要注意以下几点: a、flash player版本必须是 9.0.18.60或更高版本; b、调用全屏功能代码需通过触发事件才可以运行的,如onPress,onRelease事件; c、在插入html 代码时需设置<paramname="allowFullScreen"value="true"/>; d、经多次研究发现,如 html代码设置成<...
阅读全文
摘要:(1)Java for Flash动态网站开发手札 :http://book.csdn.net/bookfiles/191/index.html关于AMF教程(2)使用BlazeDS和AMF构建Web和桌面应用http://tech.ddvip.com/2008-09/122172811167264.html(3)Java Socket AmFhttp://www.riachina.com/sho...
阅读全文
摘要:MINA框架主要的类和接口如上图:IoService这个服务是对于服务器端的接受连接和客户端发起连接这两种行为的抽象。 服务器器端,IoAcceptor是IoService 的子接口,它用于绑定到指定的ip和端口,从而接收来自客户端的连接请求,同时会代理相应的客户端连接成功接收/取消/失败等事件给自己的IoHandle去处理。当服务器端的Accpetor从早先绑定的ip和端口上取消绑定时,默认是所...
阅读全文
摘要:使用Java的Socket API编写一个简单的TCP Echo Server。其阻塞式IO的处理方式虽然简单,但每个客户端都需要一个单独的Thread来处理,当服务器需要同时处理大量客户端时,这种做法不再可行。使用NIO API可以让一个或有限的几个Thread同时处理连接到服务器上的所有客户端。NIO API允许一个线程通过Selector对象同时监控多个SelectableChannel来处...
阅读全文
摘要:java.util.concurrent 结构Sync:获得/释放(acquire/release) 协议。同步(定制锁、资源管理、其他同步)Channel:放置/取走(put/take) 协议。通信(缓冲和队列服务)Executor:执行Runnable任务。线程池执行器(线程池的实现一些实现了Executor接口的)Sync-- acquire/release协议的主要接口-用来定制锁,资源管...
阅读全文
摘要:1 引言在软件项目开发中,许多后台服务程序的处理动作流程都具有一个相同点,就是:接受客户端发来的请求,对请求进行一些相关的处理,最后将处理结果返回给客户 端。这些请求的来源和方式可能会各不相同,但是它们常常都有一个共同点:数量巨大,处理时间短。这类服务器在实际应用中具有较大的普遍性,如web服务 器,短信服务器,DNS服务器等等。因此,研究如何提高此类后台程序的性能,如何保证服务器的稳定性以及安全...
阅读全文
摘要:当然线程池也要显式退出了。package concurrent;import java.io.File;import java.io.FileFilter;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executor...
阅读全文
摘要:一般的服务器都需要线程池,比如Web、FTP等服务器,不过它们一般都自己实现了线程池,比如以前介绍过的Tomcat、Resin和Jetty等,现在有了JDK5,我们就没有必要重复造车轮了,直接使用就可以,何况使用也很方便,性能也非常高。[代码]上面是一个简单的例子,使用了2个大小的线程池来处理100个线程。但有一个问题:在for循环的过程中,会等待线程池有空闲的线程,所以主线程会阻塞的。为了解决这...
阅读全文