cls

SDN实验---Ryu的应用开发(三)流量监控

妖精的绣舞 提交于 2019-12-02 22:09:05
一:实现流量监控 (一)流量监控原理 其中控制器向交换机周期下发获取统计消息,请求交换机消息------是主动下发过程 流速公式:是(t1时刻的流量-t0时刻的流量)/(t1-t0) 剩余带宽公式:链路总带宽-流速--------是这一个这一个,例如s2-s3(不是一条,例如:h1->s1->s2->s3->h2)的剩余带宽 路径有效带宽是只:这一整条路径中,按照最小的剩余带宽处理 二:代码实现 (一)代码框架 from ryu.app import simple_switch_13 from ryu.controller.handler import set_ev_cls from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER,DEAD_DISPATCHER class MyMonitor(simple_switch_13): #simple_switch_13 is same as the last experiment which named self_learn_switch ''' design a class to achvie managing the quantity of flow ''' def __init__(self,*args,*

Protostuff 的Java序列化和反序列化

匿名 (未验证) 提交于 2019-12-02 21:53:52
序列化和反序列化是在应对网络编程最常遇到的问题之一。 序列化就是将Java Object转成byte[];反序列化就是将byte[]转成Java Object。 这里不介绍JDK serializable的序列化方式,而是介绍一个更高效的序列化库-protostuff。 Protostuff简介 Protostuff是一个序列化库,支持一下序列化格式: protobuf protostuff(本地) graph json smile xml yaml kvp 序列化和反序列化工具 序列化 @SuppressWarnings ( "unchecked" ) public static <T> byte [] serialize(T obj) { Class<T> cls = (Class<T>) obj.getClass(); LinkedBuffer buffer = LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE); try { Schema<T> schema = getSchema(cls); return ProtostuffIOUtil.toByteArray(obj, schema, buffer); } catch (Exception e) { throw new

Java反射之内部类

匿名 (未验证) 提交于 2019-12-02 21:52:03
原文: https://www.cnblogs.com/frydsh/archive/2012/12/24/2831690.html 在Java中,使用反射的方法加载类的具体代码是: Class <?> cls = Class . forName ( "package.ClassName" ); 但是,如果需要加载的是一个内部类的话,如果我们使用这种加载方式,会抛出异常: // 如果使用这样的代码,会抛出ClassNotFoundException Class <?> cls = Class . forName ( "package.ClassName.InnerClass" ); 对于内部类,我们需要像下面这样写代码: Class <?> cls = Class . forName ( "package.ClassName$InnerClass" ); 来源:博客园 作者: 柏。 链接:https://www.cnblogs.com/hbolin/p/11512209.html

Java反射复习

匿名 (未验证) 提交于 2019-12-02 21:52:03
三种实例化对象: 1、Class<?> cls = Class.forName("java.util.Date") ; *** System.out.println(cls.getName()); 2、类.class 3、对象.getClass Class<?> cls = Class.forName("java.util.Date") ; Object obj = cls.newInstance() ; // 实例化对象,等价于 new java.util.Date() 等价于 Date date = new Date() class Main{ public static void main(String[] args) { System.out.println(new java.util.Date()==new java.util.Date()); //false } } 获得包名: Class<?> cls = CLS.class ; // 取得Class类对象 System.out.println(cls.getPackage().getName()); 获得父类接口: Class<?> cls = CLS.class ; // 取得Class类对象 System.out.println(cls.getSuperclass().getName()); //

自定义Aspect风格的AOP框架

安稳与你 提交于 2019-12-02 20:14:57
本篇博客参考《架构探险--从零开始写java web框架》4.3章节 1代理接口: package smart.myaop.framework; public interface Proxy { /** * 执行链式调用 */ Object doProxy(ProxyChain proxyChain) throws Throwable; } 2代理链(责任链模式,同一个对象可以被多个Proxy层层代理): package smart.myaop.framework; import net.sf.cglib.proxy.MethodProxy; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; /** * 代理链 */ public class ProxyChain { private final Class<?> targetClass; //目标类 private final Object targetObject; //目标对象 private final Method targetMethod; //目标方法 private final MethodProxy methodProxy; //方法代理,cglib提供的方法代理对象 private final

python面向对象

半腔热情 提交于 2019-12-02 17:53:20
编程语言的分类 编程语言的分类大体可分为三类, 面向对象、面向过程、面向对象oop。 面向机器:它是抽象成机器指令,这样机器容易理解,代表为汇编语言。 面向过程:做一件事情,排出一个步骤,第一步做什么,第二步做什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理。它特点是问题规模小,可以步骤化,按部就班的处理。代表语言 C语言 。 面向对象oop:随着计算机需要解决的问题的规模不断扩大,情况越来越复杂,需要很多人,很多部门协作,面向过程编程不太适合了。这个面对相对编程就出来了。代表语言 :c++,Java,Python等 。 面向对象 面向对象适合大规模软件,是一种认识世界,分析世界的方法论,它将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。用计算机语言来描述类,就是 属性和方法 的集合。 对象instance、object 对事是类的具象,是一个实体,对于我们每个人这个个体,都是抽象概念人类的不同实体。 比如:你吃鱼,你就是对象,鱼也是对象,而吃是动作。你是具体的人,是具体的对象,你属于人类,人类是个抽象的概念,是无数具体的个体的抽象。鱼也是具体的对象,就是你吃的这一条具体的鱼,这条鱼属于鱼类,是无数的鱼抽象出来的概念。吃是动作,也是操作,也是方法,这个吃是你的动作,也就是人类具有的方法,如果反过来,鱼吃人

如何自己手写一个热加载(转)

社会主义新天地 提交于 2019-12-02 17:10:26
出处: 如何自己手写一个热加载 热加载:在不停止程序运行的情况下,对类(对象)的动态替换 Java ClassLoader 简述 Java中的类从被加载到内存中到卸载出内存为止,一共经历了七个阶段:加载、验证、准备、解析、初始化、使用、卸载。 接下来我们重点讲解加载和初始化这两步 加载 在加载的阶段,虚拟机需要完成以下三件事: 通过一个类的全限定名来获取定义此类的 二进制字节流 将这个字节流所代表的的 静态存储结构 转化为 方法区 的运行时数据结构 在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问入口。 这三步都是通过类加载器来实现的。而官方定义的Java类加载器有 BootstrapClassLoader 、 ExtClassLoader 、 AppClassLoader 。这三个类加载器分别负责加载不同路径的类的加载。并形成一个父子结构。 类加载器名称 负责加载目录 BootstrapClassLoader 处于类加载器层次结构的最高层,负责 sun.boot.class.path 路径下类的加载,默认为 jre/lib 目录下的核心 API 或 -Xbootclasspath 选项指定的 jar 包 ExtClassLoader 加载路径为 java.ext.dirs,默认为 jre/lib/ext 目录或者 -Djava

python学习笔记之---单例

▼魔方 西西 提交于 2019-12-02 15:54:15
#单例:一个类只能生成一个实例 单例的本质:一个类最多生成一个实例 __new__: 1 真正生成实例的方法 2 在这个方法里,要判断是否存在_instance的类变量 如果已经存在了,直接返回 不在呢?那么我给_instance赋值一个新生成的实例对象。 class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): print(cls) #orig = super(Singleton, cls) cls._instance = object.__new__(cls, *args, **kw) return cls._instance s1=Singleton()#第一次生成实例,走if语句成立,调用__new__生成一个实例,后返回 s2=Singleton()#第二次生成实例,if语句不成立不会再走下面的的语句,直接返回cls._instance(第一次生成的实例),以此来实现单例 print(s1==s2) print(id(s1)) print(id(s2)) C:\Users\dell\Desktop\练习\6>py -3 0610.py <class '__main__.Singleton'> True 1526180159560

TypeError: Object of type 'Decimal' is not JSON serializable

廉价感情. 提交于 2019-12-02 15:35:06
将mysql查询结果转换为json,如上报错 解决方案,变更json加载方式,返回data即可 class DecimalEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, decimal.Decimal): return float(o) super(DecimalEncoder, self).default(o) data = json.dumps(i_params,cls=DecimalEncoder) 来源: https://blog.csdn.net/Da___Vinci/article/details/102779673

SDN实验---Ryu的应用开发

隐身守侯 提交于 2019-12-02 13:14:24
补充: (一)Ubuntu下安装Notepadqq 背景:为什么安装Notepadqq Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。但是可惜的是Notepad++只能在Windows平台下使用。 工作中必须使用Windows时,Notepad++是众多程序员最喜爱的文本编辑器,在Ubuntu下是否能够使用到相同的软件呢?Notepadqq就是这样一款与Notepad++非常接近的编辑器,拥有几乎相同的功能。 安装: sudo add-apt-repository ppa:notepadqq-team/notepadqq sudo apt-get update sudo apt-get install notepadqq 安装(2): snap install --classic notepadqq 补充: 什么是snap软件包? 卸载: sudo apt-get remove notepadqq sudo add-apt-repository --remove ppa:notepadqq-team/notepadqq (二) Ubuntu下安装 sublime 优点: 一流的Git集成 增量差异功能可跟踪正在编辑的文件的更改。 移动到GTK3,以及针对Linux的各种高DPI修复。 新的主题功能和块插入支持。 支持Unicode