07 2021 档案
摘要:C++内存管理中内存泄露(memory leak)一般指的是程序在申请内存后,无法释放已经申请的内存空间,内存泄露的积累往往会导致内存溢出。 一、内存分配方式 通常内存分配方式有以下三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,
阅读全文
摘要:HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。 HTTP响应消
阅读全文
摘要:一、查找文件 使用 Linux 经常会遇到这种情况:只知道文件中包含某些特定的字符串,但是不知道具体的文件名。需要根据“关键词”反向查找文件。 例如:查找当前目录下,包含“ipaddress”字符串的所有文件 (1)grep -rn "ipaddress" ./ (其中,r 表示递归, n 表示查询
阅读全文
摘要:OVS Open Virtual Switch(OVS) 是一个开源的多层虚拟交换机。 它通常作为基于软件的网络交换机或专用交换硬件的控制堆栈运行。 OVS 旨在通过编程扩展实现有效的网络自动化,还支持标准管理接口和协议,包括 NetFlow、sFlow、CLI、IPFIX、RSPAN、LACP、8
阅读全文
摘要:一般情况下,编写一个类一般将头文件(.h文件)和源文件(.cpp文件)进行分离。.h文件定义类和函数,.cpp文件中进行函数的实现, 然后提供给其他.cpp文件调用。但是在使用模板时,这种习惯性做法将变得不再有用,因为当实例化一个模板时,编译器必须看到模板确切的定义,而不仅仅是它的声明。 模板定义很
阅读全文
摘要:Hybrid 交换系统(以下简称Hybrid 交换机)是交换机融合了OVS(Openflow vswitch)原生代码,集传统和Openflow 技术于一体的转发系统。主要解决纯Openflow 基于流表转发的SDN 网络场景,通常面临的四大问题: 1)管理链路和业务链路分开布线,导致运营成本高;
阅读全文
摘要:GCC编译器将源代码文件转换为可执行文件需要四个过程: 1.预处理(完成宏定义和include文件展开等工作) 将include包含的文件插入源文件 宏替换 根据条件编译选择要使用的代码 经过预处理后输出“.i”文件 2.编译(根据编译参数进行不同程度的优化,编译成汇编代码) 把c/c++文件“翻译
阅读全文
摘要:和 shared_ptr、unique_ptr 类型指针一样,weak_ptr 智能指针也是以模板类的方式实现的。weak_ptr<T>( T 为指针所指数据的类型)定义在<memory>头文件,并位于 std 命名空间中。因此,要想使用 weak_ptr 类型指针,程序中应首先包含<memory>
阅读全文
摘要:IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处
阅读全文
摘要:如果一个数据库声称支持事务(MySQL的搜索引擎InnoDB支持,MyISAM不支持)的操作,那么该数据库必须要具备以下四个特性(简称ACID): 一、事物四大特性 1)原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到
阅读全文
摘要:二叉查找树又称二叉排序树,它要么是空树,要么是具有下列性质的二叉树: 每个节点都有一个作为查找依据的关键码。所有节点的关键码互不相同; 若它的左子树不为空,则左子树上所有节点的关键码均小于根节点的关键码; 若它的右子树不为空,则右子树上所有节点的关键码均大于根节点的关键码; 它的左、右子树也是二叉查
阅读全文
摘要:超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信。HTTP 的工作方式是客户端与服务器之间的请求-应答协议。web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息
阅读全文
摘要:一、进程和线程 (1)进程:进程是资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进
阅读全文
摘要:C++ 11 模板库的 <memory> 头文件中定义的智能指针,即 shared_ptr 模板类,用来管理指针的存储,提供有限的内存回收函数,可同时与其他对象共享该管理功能,从而帮助彻底消除内存泄漏和悬空指针的问题。 shared_ptr 类型的对象能够获得指针的所有权并共享该所有权:一旦他们获得
阅读全文
摘要:在系统中所有的进程之间是共享CPU和主存这些内存资源的。当进程数量变多时,所需要的内存资源就会相应的增加。可能会导致部分程序没有主存空间可用。此外,由于资源是共享的,那么就有可能导致某个进程不小心写了另一个进程所使用的内存,进而导致程序运行不符合正常逻辑。为了更加有效的管理内存并少出错,现代系统提供
阅读全文
摘要:内部排序是指在排序期间数据元素全部存放在内存的排序。外部排序是指在排序期间全部元素的个数过多,不能同时存放在内存,必须根据排序过程的要求,不断在内存和外存之间移动的排序。本次主要介绍常见的内部排序算法。 1. 直接插入排序 直接插入排序的算法思想是把待排序序列a[n]中的n个元素看作是一个有序表和无
阅读全文
摘要:HTTP 2.0兼容HTTP 1.X,同时大大提升了Web性能,进一步减少了网络延迟,减少了前端方面的工作。HTTP 1.X存在的缺点如下: 1)HTTP 1.0一次只允许在一个TCP连接上发起一个请求,HTTP 1.1使用的流水线技术也只能部分处理请求并发,仍然会存在队列头阻塞问题,因此客户端在需
阅读全文
摘要:超文本传送协议(HyperText Transport Protocol,HTTP)是互联网上应用最为广泛的一种网络协议,它工作在应用层,使用TCP的80号端口提供服务。并且HTTP是工作在客户/服务器(C/S)模式下、基于TCP的协议。客户端是终端用户,服务端是网站服务器。 客户端通过使用Web浏
阅读全文
摘要:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议主要针对三次握手建立连接和四次挥手断开连接,其中包括了11中具体的连接状态。分别是: 一、LISTEN LISTEN:表示侦听来自远方的TCP端口的连接请
阅读全文
摘要:MFC:微软基础类(Microsoft Foundation Classes),同VCL类似,是一种应用程序框架,随微软Visual C++ 开发工具发布。作为Application Framework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32 程序设计。
阅读全文
摘要:多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,分为两种类型的多任务处理:基于进程和基于线程。 1)基于进程的多任务处理是程序的并发执行。 2)基于线程的多任务处理是同一程序的片段的并发执行。 多线程程序包含可以同时运行的两个或多个部分。这样的程序中的
阅读全文
摘要:C++ STL中迭代器(iterators)用于遍历对象集合的元素。由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素;这时就需要迭代器,每次从容器内第一个元素遍历,直到迭代器等于容器的尾迭代器。这些集合可能是容器,也可能是容器的子集。迭代器按照定义方式分
阅读全文
摘要:C++ STL中的算法(Algorithms)作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。按照对容器内容的操作可将STL 中的算法大致分为四类: (1)只读算法:指不直接修改其所操作的容器内容的算法。 (2)可变序列算法:指可以修改它们所操作的容器内容
阅读全文
摘要:C++ 标准模板库(STL)中定义了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量(vector)、队列(queue)、栈(stack)、set、map等。这次主要介绍C++ 标准模板库(STL)中常用的容器(管理某一类对象的集合)用法以及自己的理解。 一、向量(
阅读全文
摘要:Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。即Socket提供了操作上述特殊文件的接口,使用这些接口可以实现网络编程。 Socket通信流程图 TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在正式通信之前必须建立起
阅读全文
摘要:C++11是C++的第二个主要版本(前一个是C++98和C++03,接下来是C++14、C++17、C++20)以及自 C++98 以来最重要的一些更新,谈谈自己的一些理解和给需要注意的知识点做个笔记。
阅读全文
摘要:Ubuntu环境下的SDN开发环境搭建以及Mininet编程,主要包括SDN网络基本知识以及实验环境搭建,流表项安装以及网络连通性测试。
阅读全文
摘要:(1)Dijkstra算法 1 class Dijkstra(Algorithm): 2 """Dijkstra algorithm for unicast route calculation. 3 """ 4 def __init__(self, delay_coefficient=5000, c
阅读全文
摘要:import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier import pydotplus import matplotlib.pyplot as plt import grap
阅读全文
摘要:1 import logging 2 import os 3 import time 4 import thread 5 import multiprocessing 6 7 from mininet.net import Mininet 8 from mininet.node import Rem
阅读全文
摘要:1 from __future__ import division 2 import time 3 import math 4 import xlwt 5 from ryu.controller import ofp_event 6 from ryu.controller.handler impor
阅读全文
摘要:# 设置root账户密码 sudo passwd root # 修改源镜像(提高下载更新速度) sudo apt-get update pip install open-vm-tools pip install open-vm-tools-desktop sudo gedit /etc/apt/so
阅读全文