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 StreamObject
 {
  public var b:Number;
  public var s:Number;
  public var i:Number;
  public var l:Number;
  public var d:Number;
  public var bool:Boolean;
  public var str:String;
  public var so:TestVO;
  public var list:Array;
  public var map:Map;
  public var o:Object;
  public function decode(pack:DataPack):void{
   b = Number(pack.readObject());
   s = Number(pack.readObject());
   i = Number(pack.readObject());
   l = Number(pack.readObject());
   d = Number(pack.readObject());
   bool = pack.readObject() as Boolean;
   str = pack.readObject() as String;
   so = pack.readObject() as TestVO;
   list = pack.readObject() as  Array ;
   map = pack.readObject() as Map;
   o = pack.readObject() as Object;
  }

  public function encode(pack:DataPack):void{
   pack.writeObject(b, DataType.TYPE_BYTE);
   pack.writeObject(s, DataType.TYPE_SHORT);
   pack.writeObject(i, DataType.TYPE_INT);
   pack.writeObject(l, DataType.TYPE_DOUBLE);
   pack.writeObject(d, DataType.TYPE_DOUBLE);
   pack.writeObject(bool, DataType.TYPE_BOOL);
   pack.writeObject(str, DataType.TYPE_STRING);
   pack.writeObject(so, DataType.TYPE_OBJECT);
   pack.writeObject(list, DataType.TYPE_ARRAY, DataType.TYPE_OBJECT);
   pack.writeObject(map, DataType.TYPE_MAP);
   pack.writeObject(o, DataType.TYPE_OBJECT);
  }

 }
}

2.建立流对象管理器

package com.net.tcp
{
 import com.commons.utils.ClassUtils;
 import com.commons.utils.Map;
 import com.net.test.TestVO;

 /**
  * 流对象管理器
  */
 public class StreamObjectManager
 {
  /**
   * 要加载的流对象
   **/
  private static var imports:Array = [TestVO];
  /**
   * 流对象Map[key=simpleName, value=class]
   **/
  private static var classes:Map = new Map();
  
  public function StreamObjectManager()
  {
  }
  /**
   * 初始化流对象管理器
   **/
  public static function init():void{
   classes.clear();
   for each(var c:Class in imports){
    classes.put(ClassUtils.getSimpleNameByObject(c), c);
   }
  }
  
  public static function getClassByName(name:String):Class{
   return classes.get(name);
  }
  
  public static function getObjectByClassName(classname:String):Object{
   var c:Class = getClassByName(classname);
   return new c();
  }
 }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值