1.字義通信流對象接口
package com.net.tcp
{
/**
* 通信流對象
**/
public interface StreamObject
{
/**
* 解析
**/
function decode(pack:DataPack):void;
/**
* 編碼
**/
function encode(pack:DataPack):void;
}
}
2.定義通信數據類型
package com.net.tcp
{
import com.commons.utils.Map;
/**
* 通信數據類型
**/
public class DataType
{
public static const TYPE_ALL:int = -1;
public static const TYPE_NULL:int = 0;
public static const TYPE_BYTE:int = 1;
public static const TYPE_SHORT:int = 2;
public static const TYPE_INT:int = 3;
public static const TYPE_DOUBLE:int = 4;
public static const TYPE_BOOL:int = 5;
public static const TYPE_STRING:int = 6;
public static const TYPE_STREAM_OBJECT:int = 7;
public static const TYPE_ARRAY:int = 8;
public static const TYPE_MAP:int = 9;
public static const TYPE_OBJECT:int = 10;
public static function isNumberType(type:int):Boolean{
if(type == DataType.TYPE_BYTE
|| type == DataType.TYPE_SHORT
|| type == DataType.TYPE_INT
|| type == DataType.TYPE_DOUBLE)
return true;
return false
}
public static function getNumberTypeByObject(object:Object):int{
if(object is int){
return TYPE_INT;
}else if(object is Number){
return TYPE_DOUBLE;
}else if(object is Boolean){
return TYPE_BOOL;
}else if(object is String){
return TYPE_STRING;
}else if(object is StreamObject){
return TYPE_STREAM_OBJECT;
}else if(object is Array){
return TYPE_ARRAY;
}else if(object is Map){
return TYPE_MAP;
}else{
return TYPE_OBJECT;
}
}
}
}