private boolean decode1(ByteBuffer in, SocketChannel socketChannel) throws Exception{
		if(in.remaining() < 3)
			return false;
		int magic = in.getShort();
		if(!LessCodecFactory.checkMagic(magic)){
			log.error("simple decodable checkMagic fail:"+in);
			return false;
		}
		int version = in.get();
		LessCodec codec = LessCodecFactory.getLessCodec(version);
		if(codec != null){
			LessDataPacket tMsg = new LessDataPacket();
			int state = codec.decode(in, tMsg);
			if(state==LessCodec.NEED_DATA)
				return false;
			LessDataPacket ret = new LessDataPacket();
            ret.setVersion(codec.getVersion());
            ret.setType(tMsg.getType());
            ret.setEncode(tMsg.getEncode());
            LessHandler hander = LessHandlerFactory.getLessHandler(tMsg.getType());
            hander.doHandler(tMsg, ret);
	    	socketChannel.write(codec.encode(ret));
			return true;
		}
		log.error("simple decodable no codec:"+in);
		return false;
	}