自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (8)
  • 收藏
  • 关注

原创 WebRTC(AppRTC) 本地部署

虚拟机环境下搭建apprtc服务器

2017-09-29 10:25:01 2255

原创 【系列】 EOS开发6 创建EOS账户

安装docker使用命令行创建EOS账户需要有一套EOS开发环境,这里我们使用一个已经安装了EOS套件的docker环境,本文使用Mac系统,关于docker软件的安装可查看Mac docker install创建EOS账户 启动dockerdocker run --rm -it eosio/eos:latest /bin/bash 确认eos主网信息 root@7dd...

2019-03-26 19:17:12 336

原创 【系列】EOS开发3 EOS提供的程序和工具

上一篇文章使用了nodeos命令来启动eos服务,这一篇文章,就来介绍一下eos提供的相关程序和工具。 nodeos EOSIO的核心守护进程,它可通过插件配置来启动一个节点。 cleos 这是一个命令行工具,它跟nodeos开放的REST API接口进行交互。在cleos使用时需要带上 nodeos实例的IP和端口。此外,cleos提供全面的命令行提示,如果不清楚说那个什么参...

2019-03-26 19:16:13 360

原创 【系列】EOS开发2 如何运行单节点测试网络

人人都在说EOS,但你知道怎么启动EOS吗启动单节点网络EOS编译完成之后,生成的执行文件nodeos在build/programs/nodes目录下,运行单阶段区块链很简单,只需要执行./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eos...

2019-03-20 19:38:17 312

原创 【系列】EOS开发1 开发环境搭建

上一篇文章搜集了EOS相关的网站,涵盖了EOS开发、资讯、项目等,方便在需要的时候查阅,但是要真正了解一个开源项目最好的办法就是本地搭建一个环境,跑起来看看效果,这篇文件就介绍了如何搭建一套EOS运行环境。概述EOSIO 由许多软件组成,其中最主要的是一下三个:nodeos- 服务端区块链节点组件 cleos- 命令行接口,用于与区块链交互和管理钱包 keosd- 管理EOS...

2019-03-20 19:37:05 329

原创 【系列】EOS开发0 资料汇总篇--持续更新

随着EOS项目的持续推进,基于EOS开发dapps大概率会成为热门需求,而现在目前正是学习EOS开发的窗口期。这是EOS开发系列文章的第一篇,之后会持续发布跟EOS开发相关文章,包括EOS环境的搭建,运行,测试已经基于EOS开发dapp,也希望有共同想法的人一起交流学习。学习新知识新事物,总是需要不断搜索阅读相关资料,及时搜集整理那些有用的网站是一个好习惯,本文就为大家搜集了一些EOS生态网...

2019-03-20 19:35:38 263

转载 Git

图形化客户端GitX (L) (OSX, 开源软件)Tower (OSX)Source Tree (OSX, 免费)GitHub for Mac (OSX, 免费)GitBox (OSX, App Store)指南和手册[Git 社区参考书](http://git-scm.com/book/en/v2)[专业 Git](http://iissnan.com/progit/)[像 git

2015-12-01 11:14:09 820

转载 Git

图形化客户端 GitX (L) (OSX, 开源软件) Tower (OSX) Source Tree (OSX, 免费) GitHub for Mac (OSX, 免费) GitBox (OSX, App Store)指南和手册 [Git 社区参考书](http://git-scm.com/book/en/v2) [专业 Git](h

2015-12-01 11:06:28 585

转载 C++容器操作

转载自:http://6924918.blog.51cto.com/6914918/1275726C++中的容器大致可以分为两个大类:顺序容器和关联容器。顺序容器中有包含有顺序容器适配器。顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。主要有vector、list、deque(双端队列)。顺序容器适配器:stack、queue和priority_queue。

2015-09-23 09:13:59 5775 1

转载 RTP协议分析

RTP协议分析第1章.     RTP概述1.1.  RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实

2015-09-15 16:51:11 536

转载 autoconfig和automake的使用

autotools是个系列工具,首先确认你的Ubuntu系统是否安装了以下工具(可以通过which命令查看):    aclocal    autoscan    autoconf    autoheader    automake   安装方法:       root@ubuntu:~# sudo apt-get install

2015-09-09 15:10:21 2412

原创 Hash表

#include #include using namespace std;const int NAME_NO = 20;const int TABLE_SIZE = 50;typedef struct { char *py; int sum;}Name;typedef struct{ char *py; int sum; int si;}Hash;Name

2015-08-26 12:43:39 625 1

原创 phthon基础

廖学峰个人站:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/

2015-08-20 15:25:44 975

翻译 CPPUTest

开源项目:https://github.com/cpputest/cpputestCppUTestCPPUTest是一个C/C++的单元测试框架准备工作你需要做这些准备工作:编译源码(unix-based, cygwin, MacOSX)Download latest versionautogen.shconfiguremakemake chec

2015-08-19 17:18:01 5094 1

原创 类的内存布局

1、一个空类,没有任何成员,它的大小是多少,答案是与编译器相关,一般是1. 任何类型的对象都需要有一个内存地址,否则都无法证明它的存在了,那么既然分配了地址,也就必然就有一定的大小,而空类没有任何成员所以编译器就象征性的给它分配1个字节(最小长度)的空间以表征它的存在。2、如果给它显示声明构造函数和析构函数,它的大小是多少,答案还是1.

2015-08-14 11:13:12 599

原创 排序

1.插入排序 1)将整个数组看成待排序数组(本来就是,呵呵) 2)将第一个数看成已排序数列,第二个数看成待排序的数,将其插入到已排序数列,其实就是跟第一个数比大小,小于就插在前面,大于即插在后面 3)将第三个数看成待排序的数,重复第二个步骤,以此类推,直到最后一个数 void insert_sort(int a[], int n){ int tmp; /*待排序部分*/ for

2015-07-13 09:59:17 593

原创 时间复杂度和空间复杂度

时间复杂度的定义:一 般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大 时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进 时间复杂度(O是数量级的符号),简称时间复杂度。计算方法:1) 算法的基本操作重复执行的次

2015-07-07 14:24:26 600

原创 求数组交集

注意:要求提供完整代码,如果可以编译运行酌情加分。 两个已排序的整型数组,求交集,最快算法 输入:两个已排序的整型数组(int a[m], b[n]) 输出:两个数组的交集#include #include using namespace std;/*递归二分法,返回数组中与目标值相等或小一号的下表*/int search_dichotomy(int a[], int i

2015-07-03 17:35:11 1525

原创 effective c++

C++可分为4个次语言:C、Object-oriented C++、Template C++、STL,在这4者中,C最基本,Object-oriented C++最重要(封装、继承、多态、动态绑定), Template C++(泛型编程)最少用,STL最实用(容器、迭代器、算法)

2015-06-18 09:28:34 535

转载 C++中的指针与引用详细解读

转载地址:http://developer.51cto.com/art/201505/476354_all.htm1、指针和引用的定义 在深入介绍之前我们首先来看一下指针和引用的定义、指针和引用的区别,然后分别针对指针和引用展开讨论,深入细节为何有这些差异。指针的权威定义:In a declaration T D where D has the form * c

2015-05-14 16:40:47 1081

转载 C++的string

要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using  std::string;using  std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,以下只用

2015-05-04 14:59:26 494

原创 C++的命名空间

1、命名空间的由来:一个程序由多个模块组成,而不同的模块中全局变量名或函数名相同的问题不可避免,这将会产生链接错误。C++中引入命名空间的概念就是为了解决名称冲突问题。2、命名空间的本质(个人观点):一个命名空间是一个作用域,使用它来声明一批名称(变量名,类名,函数名)来自该空间,以唯一地确定这些名称。3、命名空间的定义:1)命名空间以关键字namespace开始,

2015-04-29 11:11:08 1278 1

原创 C++的异常处理

异常是通过抛出对象而引发的。异常以类似于将实参传递给函数的方式抛出和捕获。异常捕获(catch)时,如果抛出(throw)发生在被调用函数中,则此时该被调用函数中的局部存储都以释放,catch所处理的对象,是被抛出对象的副本,由throw表达式初始化,成为异常对象。该对象由编译器管理,驻留在可能被激活的任意catch都可以访问的空间。catch处理完后,该对象撤销。如果在抛出表达式中出

2015-04-28 11:05:44 635

转载 NAT穿透二

在P2P实时音视频领域,NAT穿越是一个非常重要的技术。NAT穿越技术使得客户端和客户端直接进行通讯,从而减少了端到端的延迟,并大大减轻了服务器的压力,降低成本。NAT是什么  NAT的全称Network Address Translation,通常指的是把内网地址转换成外网地址。一般家用的无线路由器就用到了NAT技术。NAT技术的出现是为了解决IPv4地址不够的问题,而且还能够避免来自网

2015-04-21 11:13:29 10522

转载 Nat穿透一

转载地址:http://sw5720.blog.51cto.com/8812314/1558085NAT 的实现分为四大类:1. Full ConeNAT                        完全锥形 NAT2.  Restricted ConeNAT            限制锥形 NAT (可以理解为 IP 限制)3. Port RestrictedCone

2015-04-17 17:33:24 4145

原创 C++的构造、析构函数

构造、析构函数的由来:由于C++类是许多成员函数和成员变量的集合,在实例化一个类时肯定需要将其内部变量初始化,而这个工作如果由程序员在创建对象后显示调用初始化函数完成,恐怕难免会有疏漏,所以C++之父发挥程序员“”懒惰“的特性,规定了两个函数分别是构造和析构函数,来完成初始化和清理工作,而这两个函数很重要的一点是,他们是在对象创建和消亡时自动执行的。特别的是,如果程序员没有定义构造

2015-04-17 10:04:59 619

原创 C++的重载、覆盖和隐藏

C++的重载、覆盖、隐藏这三个类似的概念,容易混淆,所以网上找了些资料,加上自己的理解,记录在这里。根据《高质量C++编程指南》的分析,介绍了这三个概念的不同:成员函数被重载的特征:(1)相同的范围(在同一个类中,不同的类里即使使用相同的函数名和参数类型也能相安无事);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。本质是编译后

2015-04-15 10:06:32 750

原创 忆疑难问题定位及解决一

问题描述:版本a压力测试中出现线程丢失,但是进程还在,某些进程出现死锁,出现频率随机。由于该问题的存在,a版本没有发布,如果无法定位解决以后的版本都无法发布,所以在下一个版本b中,我被分配重点解决该问题。基本思路:1、查看新增代码,由于版本a新增代码量并不大,并且出现问题需要几天甚至十几天时间,所以比对代码可能是最直接的方法。但是详细查看新增代码,反复多遍,找到一些怀疑点,比如inet_n

2015-04-13 17:54:35 848

原创 C++的虚函数和多态性

以实例入手,如果分别用c和c++来实现计算各种图形周长和面积的程序(很老套但能说明问题),很快就能画出这样的框架:c:创建三个源文件(头文件中声明函数),大致就是perimeter.c, area.c, main.c,在使用时调用不同的图形对应的周长计算函数和面积计算函数即可,灵活高效,但如果在命名上不太注意的话,就会显得吃力。c++: 先创建一个头文件shape.h,定义需要用到

2015-04-07 11:23:58 1068

转载 程序员准备面试时常犯的10个错误

程序员准备面试时常犯的10个错误,分享给即将参加就业面试的程序员,希望能给大家带来帮助。1.只在电脑上练习如果面试官要考核你的技术,很有可能会要求你在白板上写代码,而不是电脑上。所以,你就不能只在电脑上练习。电脑上的编译器会自动发现你的语法错误,但是白板不会。拿出笔和纸来练习下如何写代码。如果你自我检查之后,觉得程序正确,再将它们输入到电脑里,看看是否和原先设想的一

2014-10-09 20:34:55 1023

原创 tcp TIME_WAIT状态存在的两个理由

tcp TIME_WAIT状态存在的两个理由:1)如果TCP打算执行所有必要的工作以彻底终止某个连接上两个方向的数据流,那么必须正确处理连接终止序列4个分组中任何一个分组丢失的情况。如图所示,如果服务器没有接收到最后一个ACK,会重发FIN,假设此时客户端不在TIME_WAIT状态,则无法再回复ACK,那么四次握手终止不会完成。2)假设一个tcp连接在终止之后,在相同I

2014-07-29 14:27:35 1093

原创 gdb远程调试

嵌入式终端: gdbserver 201.123.115.56:8888 --attach 1914

2014-07-28 14:02:28 968

转载 指针访问二维数组

之前对数组的概念一直没有理解透彻,只觉得数组名就是个常量指针而已,用法和基本的指针差不多。所以当我尝试用二级指针去访问二维数组时,就经常会出错。下面就是刚开始写的一个错误的程序:#include int main(){ int iArray[2][3] = {{1,2,3},{4,5,6}}; int **pArray = NULL;

2014-02-10 15:35:05 1143

原创 一个操作系统的实现(8):进程

2013-08-25 15:10:59 2657

转载 8086 cpu寄存器

8086  CPU 中寄存器总共为 14 个,且均为 16 位 。即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。通用寄存器:AX,BX,CX,DX 称作为数据寄存器: AX (Accumulator):累加寄存器,也称之为累加器; BX (B

2013-07-25 22:29:03 2052

转载 集线器、交换机、路由器、网桥、网关之间的区别

集线器(HUB)  集线器就是将网线集中到一起的机器,也就是多台主机和设备的连接器。集线器的主要功能是对接收到的信号进行同步整形放大,以扩大网络的传输距离,是中继器的一种形式,区别在于集线器能够提供多端口服务,也称为多口中继器。集线器在OSI/RM中的物理层。集线器的基本功能是信息分发,它把一个端口接收的所有信号向所有端口分发出去。一些集线器在分发之前将弱信号重新生成,一些集线器整理信号的时序

2013-05-18 11:56:42 1172

转载 Linux driver编写思考

linux 下面对 driver 的定义:struct device_driver {const char * name;struct bus_type * bus;struct completion unloaded;struct kobject kobj;struct klist klist_devices;struct klist_node knode_bus;

2012-09-22 23:04:59 1610

转载 从开发者的角度学习Linux内存管理

进程如何使用内存?毫无疑问,所有进程(执行的程序)都必须占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。稍有编程知识的朋友都能想到这几个数据段中包含有“程序代码段”、“程序数

2012-09-22 23:00:22 741

转载 Linux中tty框架与uart框架之间的调用关系

2012-09-19 16:231222人阅读评论(3)收藏举报之前本人在"从串口驱动的移植看linux2.6内核中的驱动模型 platform device & platform driver"一文中已经写到了移植的设备是如何通过platform总线来与对应的驱动挂载。在这期间有一个问题困扰着我,那就是来自用户空间的针对uart设备的操作意图是如何通过tty框架逐层调用到uart

2012-09-22 22:39:17 1542 1

转载 超实用的8个Linux命令行性能监测工具

对每个系统/网络管理员来说,每天监测Linux系统性能是一项非常艰巨的任务。在IT业从事5年的Linux系统管理员后,我发现监控和保持系统正常运行真不是件容易的事,为此,我总结了8个非常实用的命令行工具给Linux/Unix系统管理员。这些命令支持所有的Linux系统,不仅可以用于监控系统,还可以发现导致性能问题的原因所在。下面提供的8个命令足够你选择其中一个用于你的场景中。1.TOP——

2012-09-21 20:30:12 2887

LINUX操作系统之奥秘.pdf

linux开发学习者很好的学习资料,特别是对操作系统内幕感兴趣的人

2012-08-30

windows下文件对比工具

windows下文件对比工具,很好很强大

2012-05-15

windows下vim剪辑器

windows下的vim编辑器,适合Linux下程序开发者在windows下编辑代码

2012-05-15

c程序设计语言(高清版)

c语言学习经典书籍,适合c程序开发者阅读,与大家分享

2012-04-28

linux内核完全注释

对Linux 0.11内核进行了详细注释,适合Linux爱好者学习使用

2012-04-10

Qt_addressBook

很好的Qt入门例程,使用qt4编译通过,并在CSDN网站中编写了相关说明,及需要注意的地方

2011-05-12

空空如也

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

TA关注的人

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