自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 游戏业务逻辑和DB无阻塞实现

程序阻塞的情况通常是等待资源,通常业务逻辑都是附带DB操作的,有时候因为DB阻塞或者执行时间过长,导致业务层的线程给占用,比如开了4个线程来处理业务,那么当4个线程都处理阻塞时,其他新请求业务的用户将得不到满足,不管用户的业务逻辑是否有进行DB操作。通常作法是这样的方法1(...参数){ 1.业务逻辑判断 2.DB操作(一般事务处理) 3.返回}通常是在第2步执行时间过

2012-05-03 11:13:12 897

原创 简单的对对碰小游戏源码

package com.data{ import mx.controls.Button; /**  * 格子数据  **/ public class DataItem extends Button {  public static const TYPES:Array = [1, 2, 3, 4, 5, 6, 7];  public static const WI

2012-04-30 16:31:32 1473

原创 java flash tcp字节流通信(五)-java 伪事件处理器(新)

package com.event;/** * 事件 */public class Event { /**发起事件的对象*/ private Object source; /**事件类型*/ private int type; /**参数*/ private Object[] args; public Event(int type, Object ...

2012-04-28 17:17:42 433

原创 java flash tcp字节流通信(五)-java 伪事件处理器

package com.event;/** * 事件 */public class Event { /**事件类型*/ private int type; /**参数*/ private Object[] args; public Event(int type, Object ...args){  this.type = type;  this.args

2012-04-25 21:43:10 446

原创 java flash tcp字节流通信(四)-flash as3 客户端(粘包/半包处理)

package{ import com.commons.utils.Map; import com.net.tcp.DataCache; import com.net.tcp.DataContent; import com.net.tcp.DataHead; import com.net.tcp.DataPack; import com.net.tcp.DataType

2012-04-25 17:04:09 598

原创 java flash tcp字节流通信(四)-flash as3 粘包/半包处理器(数据缓存)

1.重写socket类package com.net.tcp{  import flash.net.Socket;  public class NetSocket extends Socket {  public function NetSocket(host:String=null, port:int=0)  {   super(host, port);

2012-04-25 17:03:02 709 1

原创 java flash tcp字节流通信(四)-java 服务端(粘包/半包处理)

package com.net.test;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocke

2012-04-25 16:59:59 653

原创 java flash tcp字节流通信(四)-java 粘包/半包处理器(数据缓存)

package com.net.tcp;import java.nio.ByteBuffer;import java.nio.channels.SocketChannel;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** *  * TCP通信数据缓存(粘包

2012-04-25 16:58:35 856

原创 java flash tcp字节流通信(三)-java StreamObject as3 生成器

package com.net.tcp;import java.io.File;import java.io.FileOutputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.ParameterizedType;import jav

2012-04-25 16:05:23 526

原创 java flash tcp字节流通信(三)-java StreamObject方法生成器

package com.net.tcp;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList;impor

2012-04-25 16:03:48 375

原创 java flash tcp字节流通信(二)-flash as3客户端

package{ import com.commons.utils.Map; import com.net.tcp.DataCache; import com.net.tcp.DataContent; import com.net.tcp.DataHead; import com.net.tcp.DataPack; import com.net.tcp.DataType

2012-04-25 12:11:34 519

原创 java flash tcp字节流通信(二)-java 服务端

package com.net.test;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import

2012-04-25 12:10:05 502

原创 java flash tcp字节流通信(一)-flash as3 协议(5)

测试类:package{ import com.commons.utils.Map; import com.net.tcp.DataCache; import com.net.tcp.DataContent; import com.net.tcp.DataHead; import com.net.tcp.DataPack; import com.net.tcp.Da

2012-04-25 03:56:37 510

原创 java flash tcp字节流通信(一)-flash as3 协议(4)

1.数据包头package com.net.tcp{ /**  * 数据包头  **/ public class DataHead {  /**包头长度*/  public static const DATA_HEAD_LEN:uint = 4;    private var _len:uint;  public function DataHead(

2012-04-25 03:54:52 591

原创 java flash tcp字节流通信(一)-flash as3 协议(3)

1.先建立一个流对象测试类package com.net.test{ import com.net.tcp.DataPack; import com.net.tcp.DataType; import com.net.tcp.StreamObject; import com.commons.utils.Map; public class TestVO implements

2012-04-25 03:52:07 589

原创 java flash tcp字节流通信(一)-flash as3 协议(2)

1.字义通信流对象接口package com.net.tcp { /**  * 通信流对象  **/ public interface StreamObject {  /**   * 解析   **/  function decode(pack:DataPack):void;    /**   * 编码   **/  function

2012-04-25 03:47:05 439

原创 java flash tcp字节流通信(一)-flash as3 协议(1)

1.类工具package com.commons.utils{ import avmplus.getQualifiedClassName;  import flash.utils.getDefinitionByName; /**  * 类工具  **/ public class ClassUtils {  public function ClassUti

2012-04-25 03:33:56 519

原创 java flash tcp字节流通信(一)-java 协议(6)

测试代码package com.net.test;public class TestObject { private String name; private Long value; public String getName() {  return name; } public void setName(String name) {  this.name =

2012-04-24 20:08:16 471

原创 java flash tcp字节流通信(一)-java 协议(2)

定义字节工具(用于解析/编码基本对象)package com.net.tcp;import java.io.UnsupportedEncodingException;/** *  * 字节工具类 *  */public class ByteUtils { public static byte[] getBytes(Object o){  int len =

2012-04-24 20:05:24 462

原创 java flash tcp字节流通信(一)-java 协议(5)

封装完整的数据包package com.net.tcp;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.List

2012-04-24 19:51:07 443

原创 java flash tcp字节流通信(一)-java 协议(4)

定义数据包内容,为使ByteBuffer创建后能够重用,数据包内容用List存储创建的ByteBuffer,每个ByteBuffer都是固定大小package com.net.tcp;import java.nio.ByteBuffer;import java.util.ArrayList;import java.util.List;/** *  * 数据内容 *

2012-04-24 19:50:04 515

原创 java flash tcp字节流通信(一)-java 协议(3)

定义数据包头package com.net.tcp;import java.nio.ByteBuffer;/** *  * 数据包头 * */public class DataHead { public final static int HEAD_LEN = 4;  /**数据包升序*/ private int len; /**包头buffer(

2012-04-24 19:48:15 424

原创 java flash tcp字节流通信(一)-java 协议(1)

1.定义一个对象流接口package com.net.tcp;/** *  * 通信对象流接口 *  */public interface StreamObject { /**解析*/ public void decode(DataPack pack);  /**编码*/ public void encode(DataPack pack);}

2012-04-24 19:46:06 528

原创 java flash 安全沙箱

flash底层安全机制强制要求flash通信或者跨域访问时,必须从服务端拿到安全策略文件,默认是flash会向服务端843发送报文,当服务端843不开放,或者安全时间(3秒)内无返回时,如果是socket通信,flash会向服务端socket指定端口发送请求报文,如果服务端无返回或返回不是安全策略文件,那么flash将报安全沙箱错误。安全策略文件内容如下:其中domain指定可访问

2012-04-23 15:27:37 832

原创 java多线程开发,锁的管理

java多线程开发,死锁一直是我们纠结的问题,当然,死锁的时候查看线程信息是能找出个所以然来,但一旦到那个地步,估计整个程序架构出现的问题可能就不只一个地方。而解决死锁的方法是注意锁的顺序问题,一个人开发当然好注意,但当多人开发时,这些问题都是会出现的,即使有良好的沟通,但总会出现一些小问题的,比如,A在方法funA1加了lock1,B在方法funB2加lock2,而funA1中需要调用到funB

2012-04-18 18:27:57 507

原创 java nio 值对象发送协议

java tcp通信时发送对象是最好的办法就是把对象按字段打包成字节流,用json和字符串都太占流量了。在游戏开发中,自己搭了一个解析和压缩数据的方法,能将数据类型(整型/长整型/浮点型/双精度浮点型/布尔类型/字符串/流对象/数组)打包成ByteBuffer。1.定义通信数据类型package com.socket.protocol;/** * 通信类型(整型/长整型/浮点型/双

2011-12-28 12:29:07 586

原创 Spring配置mysql连接池,连接超时解决方法

mysql默认连接超时时间为8小时,Spring配置mysql连接池时,长时间不用连接句柄,会造成连接超时,主要是数据库断掉了连接,而程序本身不知道,继续用着已经关闭的连接就会报错,有三种作法可以解决这个问题,一种是改变mysql的my.ini文件,在my.ini里添加wait_timeout=N秒;另外一种作法就是每次用到连接时都检查一下是否超时,不过,这个作法相法不高明;还有一种作法就是利用o

2011-12-13 09:58:23 2071

原创 TCP粘包,半包解决方法

粘包,半包是TCP通信中经常遇到的问题,一般游戏开发中,每条消息都包含消息头,消息类型,以及要处理的数据信息,一般消息头上包含着此条消息内容的长度,一旦socket中读出的内容长度大于消息头长度,我们称之为粘包,反之则称之为半包。游戏开发中,一般每个socket中伴随着自定义缓存区,用于存储上一次未处理完的未完整信息。我之前开发的游戏用的是java nio方式通信,java.nio.channel

2011-12-12 21:20:27 775

原创 解决MyEclipse ant的build.xml编译时Error starting modern compiler

<br />出现这个错误主要是因为MyEclipse的jdk版本和本机虚拟机的jdk版本不同,解决途路就是把两个jdk的版本换一样了,可以换本机的虚拟机,也可换MyEclipse的jdk,如果换MyEclipse的jdk,可以这样换window ->Prefrences->Java->Compiler->Compiler compliance level: 选JDK1.x 随便 一个项目下右键:Properties-Java Build Path->Libraries->右边选 Edit Library -

2010-12-26 17:12:00 1124

原创 JMS应用

<br />     JMS(Java Message Service,Java消息服务)是一组Java应用程序接口(Java API),它提供创建、发送、接收、读取消息的服务。<br /> <br />     JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个 JML 客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以

2010-12-23 10:49:00 476

原创 解决EJB3.0发布时出现javax.naming.nameNotFound的问题

一般出现这个问题主要是因为jndi没找到,我们可以新添加一个jndi,比如jndi为tqueue,在JBoss根目录/server/default/deploy下的mail-service.xml文件中加入如下: queue/tqueue jboss.mq:service=DestinationManager 重启JBoss问题即解决。

2010-12-23 10:29:00 649

原创 struts2.x的优点

<br />Struts2是在WebWork2基础发展而来的。<br />1.在软件设计上struts2没有像struts1那样跟ServletAPI和StrutsAPI有着紧密的耦合,Struts2的应用可以不依赖于ServletAPI和StrutsAPI。Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。<br />public class OrderListAction extends Action{<br /> public ActionForward execute(Ac

2010-11-04 15:19:00 319

原创 利用java反射机制,将数据库结果集封装成对象

源码如下:import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util

2010-10-23 14:50:00 1163

原创 Struts多模块

Struts多模块间的跳转(1)用SwitchAction,主要用于实现页面的跳转 (2)全局转发和局部转发,用于实现模块间的跳转 (3)采用html:link标签 web.xml:actionorg.apache.struts.action.ActionServletconfig/WEB-INF/struts-config.xmlconfig/manage

2010-10-23 10:29:00 481

原创 js数据动态绑定

这是以前项目开发中用的JS-AJAX-JSON动态数据绑定databind.js源码// JavaScript Document//定义解析类function DataBind(){};//扩展类型var extend_obj = {};//给解析类增加变量与方法DataBind.prototype={    selectList   : new Array(),    radioList    : new Array(),    lineNum      : 0, 

2010-10-23 01:16:00 1576

原创 java-mysql数据库连接池

闲来无事,写了一个MySql数据库连接池工程结构如图源码如下:DBConnectioin.java如下package com.database;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;public class DBConn

2010-10-22 19:11:00 2767

原创 js特效-渐现、一边进入、拌动、两边向中间弹出窗口

此特效需要本人所写的前几个JS特效源码filter.jsdrop.jsbounce.jsblind.jsclip.jsslide.js如有需要,请看本人前几篇博客,由于本人比较懒散,所以源码的注示比较少,请原谅js源码dialog.js// JavaScript Document/* * @function dialog *  @description dialogId对话框id,effect特效(可选,默认随机),className对话框样式(默认dialog,可选),templateHtml对话框内容(

2010-10-20 22:18:00 928

原创 js特效-下拉菜单

js源码slide.js:// JavaScript Document/** * @function slide向一边显示块 *  @direction objId显示块的id,direction方向,speed速度 */function slide(objId, direction, speed, destorySign){ var effect = this; var obj = null; var top = 0; var bottom = 0; var left = 0; var right = 0

2010-10-20 21:50:00 370

原创 js特效-渐现菜单

js源码filter.js:// JavaScript Document/** * @function filter渐现显示 *  @direction objId显示块的id,speed速度 */function filter(objId, speed){ var effect = this; var obj = null; var speed = speed ? speed : 10; var timer = null; var opacity = 0; var init = function(){  

2010-10-20 21:45:00 393

原创 js特效-渐现进入菜单、窗口

js源码:// JavaScript Document/** * @function drop渐现进入 *  @direction objId显示块的id,direction方向(up,down,left,right),speed速度 */function drop(objId, direction, speed, destorySign){ var effect = this; var obj = null; var top = 0; var left = 0; var container = null;

2010-10-20 21:40:00 381

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除