自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 深入浅出4G网络 第一章笔记

1.3 认识EPC网元eNodeB LTE网络中的基站,是LTE中E-UTRAN (空中部分)中的主要网元,负责无线资源管理,上下行数据分类和QoS(资源抢占)执行等,相当于面向终端的一个汇聚节点。MME负责控制面的移动性管理、用户上下文和移动状态管理、 分配用户临时身份标识等。相当于LTE的网络总管家,管理内部与外部事务HSS 归属用户服务器存储了LTE网络中 用户所有与业务相关的签约数据,提供用户签约信息管理和用户位置管理。S-GW 服务网关 是3GPP内不同接入网络间的用...

2021-08-23 21:29:19 546

原创 Git基础

Git和GitHub入门基础-----------------------------------------//cd F:/learngit// 创建仓库git init  // 在当前目录下创建空的git仓库-----------------------------------------// 创建文件并放到git仓库所在目录,执行下面命令将文件添加到git仓库git add...

2019-01-04 15:15:38 165

原创 Linux 上 Ruby以及 Rails的安装 2018

整理了一下Ubantu安装rails步骤:rails安装: rvm:$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3$ curl -sSL https://get.rvm.io | bash -s stable# 如果上面的连接失败,可以尝试: $ c...

2018-11-13 22:25:24 227

转载 拜占庭将军问题

了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭将军问题。但真正明白这个问题的人并不多,甚至知道这个问题实质的人都很罕见。本文是一篇技术科普,将重点提供了拜占庭将军问题本身对本质及经典算法的解析,并探讨与之相关的一些问题。笔者参考了不少文献,夹杂了大量私货,但并没有提出解决该问题的新算法,这也不是本文的目的。 Part1:拜占庭...

2018-08-15 17:06:04 473

原创 GO语言笔记(一)

GO程序一般结构// 当前程序的包名package main // 导入其他包import . "fmt" // 常量定义const PI = 3.14 // 全局变量的声明和赋值var name = "gopher" // 一般类型声明type newType int// 结构的声明type gopher struct{}// 接口的声明type golang int...

2018-08-15 16:34:58 457

原创 Ruby学习笔记(1)

1、Ruby数组和散列表Array和Hash数组和一般C/C++等语言差不多a = [1, 2, 3, 4, 5]或 a = %w{1 2 3 4 5 6}=>a[0] = 1  a[1] = 2散列表与数组类似散列表中有两个对象:一个键(key)一个值(value),比如City = {‘jiangsu’ => 'nanjin''anhui' =&...

2018-07-19 15:38:30 157

原创 C/C++笔试整理()

1、内存泄漏举例,知道哪些内存泄漏检测工具内存泄漏分为堆内存泄漏:new、malloc以及系统资源泄漏:Handle、GDI、Object、Socket等VLD(Debug版本Windows系统)、BoundsChecker、Purify(生成内存报告)在所有的CPP文件里加入以下宏定义,用于在发生内存泄露后,可以定位到进行new操作的代码行数:#i

2017-10-04 16:39:41 348

转载 多线程和多进程的区别(小结)

很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()

2017-07-30 19:33:29 268

原创 C++文件的复制

使用C++标准程序库的输入输出流(I/O Stream)复制文件,存在许多的方法,方法一:逐个字符复制#include std::ifstream input("in",iOS::binary);std::ofstream output("out",ios::binary);char ch;while (input.get(ch)) output 注

2017-07-24 21:21:12 725

转载 C语言中static关键字的作用

在C语言中static的作用如下第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static

2017-07-23 20:13:57 250

转载 运算符的重载+、-、*、/、[]、自加++的重载

1.为什么要用到运算符的重载所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能.看下面这个代码:怎样实现虚数的加减。[cpp] view plain 

2017-07-21 09:31:14 588

转载 虚函数实现多态,虚析构函数,虚函数表和多态实现机制,纯虚函数

1.c++多态的概念以及用途。1.1虚函数实现多态通过基类指针只能够访问派生类的成员变量,不能够访问派生类的成员函数。解决问题的办法:使用虚函数(virtual function),只需要在函数声明前面增加virtual关键字。看下面的代码。[cpp] view plain copy#include   using nam

2017-07-20 09:30:30 275

转载 基于TCP协议用多线程实现并发服务器,实现思路、算法和demo

基本的思路:用主线程负责client的连接, 然后当有客户端来连接的时候,创建子进程。在子进程里面实现数据的接收。1.myhead.h先把一些要用的API的头文件都写进来。[cpp] view plain copy#ifndef _MYHEAD_H_  #define _MYHEAD_H_    #include   

2017-07-18 20:46:26 1585

原创 C++课堂笔记0716

7.16int *ptr;ptr++;(*ptr)++*ptr++;int a = 5;int &b =a;b++;1.继承基类中,在类内,public,protected, private都是可以随意访问的;在基类的对象中,只能访问public成员;public继承: 基类的public成员,在派生类中依旧是public属性,派

2017-07-17 13:09:27 257

转载 C++string详解

通过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖

2017-07-13 19:27:23 239

转载 堆和栈的区别!!!

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2017-07-12 17:50:52 210

原创 C++课堂笔记0711

1.类的声明和定义C++中类定义类的声明部分一般分为类声明部分和类的实现部分。类的声明部分用来说明类中的成员(数据成员,数据函数),告诉使用者干什么。类实现部分用来定义成员函数,该函数用来对数据成员进行操作,告诉使用者怎么干。类的定义的一般形式 :class {public:    ;protected:     ;privated:      ;

2017-07-11 19:14:31 323

转载 C++字符串

C++ 提供了以下两种类型的字符串表示形式:C 风格字符串C++ 引入的 string 类类型C 风格字符串C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 “Hello” 字符串。由于在数

2017-07-10 16:21:28 154

转载 C++关键字总结

explicit关键字首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). 例如对于一个参数的构造函数来说:class test{ test(int a){} test(do

2017-07-09 23:03:48 374

转载 如何让成为一个C/C++程序员

这个题目的噱头太大,要真的写起来, 足够写一本书了。 本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路。 每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人。 一、C/C++语言       如果你的基础很差, 建议不要一开始就学C++语言,从C开始学起,对程序有个初步的认识,循序渐进。C语言的书嘛,先

2017-07-08 22:36:02 383

原创 C++课堂笔记0706

1、变量定义位置ANSI C 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不积极,仍然要求变量定义在函数开头。C++ 取消了原来的限制,变量只要在使用之前定义好即可,不强制必须在函数开头定义所有变量。#includeusing namespace std;int

2017-07-06 20:10:56 335

转载 C++

经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a = 4; cout C++ 不是规定 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个变量(通过赋值、增量/减量操作等),什么时候从该变量能够取到新值?

2017-07-06 19:22:17 309

转载 初识C++

看一下最简单的C++的主函数:int main(){ return 0;}12341234它什么也不干,主函数也是函数,包括返回类型,函数名称,形参列表以及函数体。return 0 代表返回一个int型的数据,如果不返回任何类型,将使用void。任何语言都必须有输入输出。C++同样不例外,C++与C不同,输入输出都是由标准库提供的,iostream库。包含了输入流i

2017-07-05 19:41:44 162

转载 不一样的C++系列--类模板与特化

类模板类模块的概念和意义在C++中有这样一些类:主要用于存储和组织数据元素类中数据组织的方式和数据元素的具体类型无关如:数组类,链表类,Stack类,Queue类等C++中将模板的思想应用于类,使得类的实现不关注数据元素的具体类型,而只关注类所需要实现的功能。所以C++中的类模板是这样的:以相同的方式处理不同类型的数据在类声明前使用template进

2017-07-04 21:20:20 801

转载 Linux下常用的C/C++开源Socket库

1. Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.htmlACE: http://www.cs.wustl.edu/~schmidt/ACE.htmlACE采用ACE_OS适配层屏蔽各种不同的、复杂繁琐的操作系统API。ACE是一个大型的中间件产品,代码20万行左右

2017-07-03 21:07:17 1942

转载 C++ 继承的构造与析构

继承的构造与析构子类对象的构造子类中可以定义构造函数子类构造函数 必须对继承而来的成员进行初始化 直接通过 初始化列表 或者 赋值的方式 进行初始调用父类构造函数 进行初始化父类构造函数在子类中的调用方式 默认调用 适用于无参构造函数和使用默认参数的构造函数显示调用 通过 初始化列表 进行调用适用于所有父类构造函数父类构造

2017-07-02 18:41:36 219

转载 C++随记

1.c/c++的内存分配方式 代码区:在一个exe中,正文段(Text Segment)储存指令 全局数据区:数据段(Data Segment)储存已初始化的全局变量和静态变量,BSS段(BSS Segment)储存未赋值的全局变量所需的空间。把比较大的数组定义在main函数外。 在程序运行时: 堆区:动态内存。程序运行时用malloc或new申请任意多少的内存,需要用户free或

2017-07-01 14:50:38 157

转载 C++虚函数

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过

2017-07-01 14:49:34 162

转载 网络编程基础一

一、数据存储顺序:大端和小端         高位字节存储高字节称为小端模式,通常都计算机采用这个模式存储。而网络则采用大端传输。所以需要转换       面试有时会出这么个题:写一个程序判断程序的存储是大端还是小端?     程序的原理见下图:      [cpp] view plain copy p

2017-06-29 09:56:15 224

转载 socket笔记

3、socket的基本操作既然socket是“open—write/read—close”模式的一种实现,那么socket就提供了这些操作对应的函数接口。下面以TCP为例,介绍几个基本的socket接口函数。3.1、socket()函数int socket(int domain, int type, int protocol);socket函数对应于普通文件的打

2017-06-28 19:18:18 261

转载 MySQL入门

在很多地方都有人提到MySQL这个数据,之前没有接触过的mysql数据库的童鞋们可以跟我一起走进mysql的世界。 安装我就不多说了,都是傻瓜的安装。 安装好了之后就可以看到服务里多了个服务。  当然要启动它。 根据自己的需要设置成自动还是手动了。看到这个服务的路径 "C:\Program Files\MySQL\MySQL

2017-06-27 12:01:43 165

转载 Android进程管理详解

Android的原理-不需要太多的剩余内存    不用在意剩余内存的大小.其实很多人都是把使用其他系统的习惯带过来来了.安卓android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系.如果你知道Java,就能更清楚这机制了.其实和java的垃圾回收机制类似,系统有一个规则来回收内存.进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需

2017-06-26 22:37:18 353

转载 linux下的几种进程间通信方式的特点

linux上面的IPC大多都是从UNIX上面继承而来。        最初Unix IPC包括:管道、FIFO、信号。System V IPC包括:System V消息队列、System V信号灯、System V共享内存区。由于Unix版本的多样性,电子电气工程协会(IEEE)开发了一个独立的Unix标准,这个新的ANSI Unix标准被称为计算机环境的可移植性操作系统界面(PSOIX)

2017-06-25 09:15:30 580

转载 Linux下网络编程实现UDP

一、引言       UDP是TCP/IP协议中的传输层协议的一种,本文介绍了在Linux下编写基于UDP协议的Client/Server模型的程序的方法,并给出了一个echo Client/Server例子程序。       二、UDP协议简介       UDP是一种简单的传输层协议,在RFC768中有详细描述。UDP协议是一种非连接的、不可靠的数据报文协议,完全不同于提供面向

2017-06-24 10:13:43 493

转载 Linux下的静态库与动态库

库在windows和Linux下都存在着大量的库,库是什么呢?本质上来说,库时一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有什么用呢?我们通常将一些公用函数写成函数库,所以库是别人写好的,现有的,成熟的,可以服用的代码,你可以使用但要必须得遵守许可协议。在我们现实开发过程中,不可能每一份代码都从头编写,当我们拥有库时,我们就可以直接将我们所需要的文件链接到

2017-06-23 09:48:55 393

转载 gcc生成静态库和动态库

gcc生成静态库和动态库一、库文件简介简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代 码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态库文件的扩展名是.a,共享库文件的扩展名是.so(在CYGWIN环境下,分别叫做.o和.dll)。共享库现在常常被叫做 动态库,是由

2017-06-22 09:56:00 171

转载 TCP和UDP的区别

TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,

2017-06-21 09:22:17 146

转载 TCP/IP详解学习笔记(1)-基本概念

为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的

2017-06-20 09:13:16 206

转载 TCP详解

一、TCP协议1、TCP 通过以下方式提供可靠性: ◆ 应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。 ◆ 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它 就重发这个报文段。 ◆ 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常延迟几分之一秒。◆ TCP将保持它首部和数

2017-06-19 14:08:50 163

转载 SQL数据库基本操作

一、数据库及数据库表定义  1、创建基本表    create table ([列级完整性约束条件]                                                     [,[列级完整性约束条件]                                                     ......... 

2017-06-18 20:20:05 323

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除