自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

转载 C++仿函数(functor)

摘要: c++仿函数(functor)概念及应用什么是仿函数(functor)    functor的英文解释为something that performs a function,即其行为类似函数的东西。C++中的仿函数是通过在类中重载()运算符实现,使你可以像使用函数一样来创建类的对象。仿函数(functor)的实现及使用// this is a functors

2017-02-28 16:38:19 5433

转载 我的Protobuf消息设计原则

网络通信涉及到消息的定义,不管是使用二进制模式、xml、json等格式。消息都可以大体的分为 命令消息、请求消息、应答消息和指示消息4大消息类型。一般情况下每个消息还还有包含一个序列号和一个能够唯一区分类型类型的消息编号,编号可以使用字符串、整数或者枚举等。1. 使用 protobuf 的enum定于消息的编号,也就是消息的类型。我会为每个系统都定义一个MSG枚举。包含系统用到的所有消

2017-02-27 17:21:12 1089

转载 google protobuf序列化原理

一个message,序列化时首先就算这个message所有filed序列化需要占用的字节长度,计算这个长度是非常简单的,因为protobuf中每种类型的filed所占用的字节数是已知的(bytes、string除外),只需要累加即可。这个长度就是serializedSize,32为integer,在protobuf的某些序列化方式中可能使用varint32(一个压缩的、根据数字区间,使用不同字节长

2017-02-27 17:20:34 12676 1

转载 计算结构体的大小(对齐)

结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体:  struct stu1  {  int i;  char c;  int j;  };  先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址

2017-02-27 16:24:43 298

转载 TCP网络编程中connect()、listen()跟accept()三者之间的关系

TCP网络编程中connect()、listen()和accept()三者之间的关系基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下:connect()函数对于客户端的 connect() 函数,该函数的功能为客户端主动连接服务器,建立连接是通过三次握手,而这个连接的过程是由内核完成,不是这个函数完成的,这个函数的作用仅仅是通知

2017-02-21 15:03:17 311

转载 socket原理详解

1、什么是socket我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量,这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢?在计算机网络中我们就学过了tcp/ip协议族,其实使用tcp/ip协议族就能达到我们想要的效果,如下图(图片来源于《tcp/ip协议详解卷一》第一章1.3)         、     

2017-02-21 14:57:41 347

转载 使用Protocol Buffers入门四步骤

Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化、反序列化,经常用于网络传输。protobuf是谷歌的Protocol Buffers的简称,用于结构化数据和字节码之间互相转换(序列化、反序列化,即实现从结构体转换为字节流(编码,向LIS发送消息时使用)以及从字节流转换为结构体(解码,从LIS接收消息时使用)的功能。),一般应用于网络传输,可支

2017-02-20 12:11:23 4621

转载 【Boost】boost库中thread多线程详解5——谈谈线程中断

线程不是在任意时刻都可以被中断的。如果将线程中函数中的sleep()睡眠等待去掉,那么即使在主线程中调用interrupt()线程也不会被中断。thread库预定义了若干个线程的中断点,只有当线程执行到中断点的时候才能被中断,一个线程可以拥有任意多个中断点。thread库预定义了共9个中断点,它们都是函数,如下:1. thread::join();2. thread::time

2017-02-17 15:52:21 509

转载 select 与 fd_set

select(),确定一个或多个套接口的状态,本函数用于确定一个或多个套接口的状态,对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息,用fd_set结构来表示一组等待检查的套接口,在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目。用途:确定一个或多个套接口的状态,如需要则等待。[cpp

2017-02-17 15:36:15 409

转载 select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

转载:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET    从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。    select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int max

2017-02-17 14:56:16 284

转载 Boost::bind使用详解

demo#if 1#include#include#includeusing namespace std;typedef boost::function Func;void (*fun)(int a){;}int test(int num){   std::cout   return 2;}int main()

2017-02-16 18:27:56 6554 1

转载 Lua和C++交互

转自:http://cn.cocos2d-x.org/tutorial/show?id=1474一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-

2017-02-15 17:04:52 244

转载 QT .pro文件 LIBS用法详解

在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的。 下面是官方文档对于LIBS变量的使用说明:这段话对于LIBS的使用说的很清楚了,就是-L指定库的目录,而-l指定库的名字(如果是在Linux下,则去掉lib和后缀名,windows

2017-02-13 16:48:48 19549 1

转载 Lua 教程

Lua 教程Lua 教程Lua 环境安装Lua 基本语法Lua 数据类型Lua 变量Lua 循环Lua 流程控制Lua 函数Lua 运算符Lua 字符串Lua 数组Lua 迭代器Lua table(表)Lua 模块与包Lua 元表(Metatable)Lua 协同程序(coroutine)Lua 文件 I/OLua

2017-02-10 15:01:43 1888 1

原创 lua安装

lua安装:1、推荐安装libreadline的deb文件("sudo dpkg -i *.deb" 安装*.deb软件包(其中-i等价于--install))2、直接安装lua-5.3.3.tar文件(http://www.runoob.com/lua/lua-environment.html):   tar zxf lua-5.3.0.tar.gz   cd lua-5

2017-02-08 17:23:21 1257 1

新一代视频压缩编码标准H.264.rar

新一代视频压缩编码标准H.264书籍,为毕厚杰老师经典作品

2019-07-29

详解spice.rar

spice协议详解,书籍保护目录,很经典的查询资料,

2019-07-29

空空如也

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

TA关注的人

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