自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 linux C/C++服务器后台开发面试题总结

一、编程语言1.根据熟悉的语言,谈谈两种语言的区别?主要浅谈下C/C++和PHP语言的区别:1)PHP弱类型语言,一种脚本语言,对数据的类型不要求过多,较多的应用于Web应用开发,现在好多互联网开发公司的主流web后台开发语言,主要框架为mvc模型,如smarty,yaf,升级的PHP7速度较快,对服务器的压力要小很多,在新浪微博已经有应用,对比很明显。2)C/C++开发语言,C语言更偏向硬件底层...

2018-02-12 09:33:57 899

转载 后台开发知识点总结(一、Linux和OS)

  偶然在知乎上看到想要从事linux后台开发需要的能力集锦,总结的挺全面的,鉴于自己贫弱的记忆力,还是在这里总结一下供以后查看,顺便检验一下自己。   1、 命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验  在《TCP/IP》协议一书中,经常使用到netstat和tcpdump这两个命令,netstat常用于显示各种网络信...

2018-02-11 13:56:03 1888

转载 抓包工具tcpdump用法说明

本文目录:1.1 tcpdump选项1.2 tcpdump表达式1.3 tcpdump示例tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。例如:shell> tcpdump -nn -i eth0 icmp下面是详细的tcpdump用法。1.1 tcpd...

2018-02-11 13:55:27 660

原创 基于c++11的短小精悍生产者消费者模型

传统的c++98编写起来代码量挺大的,且受约束和限制,所以在空闲时间自写了个基于c++11的生产者消费者模型,采用了boost部分库,代码量一下子变得很简短且清晰。#include "stdafx.h"#include #include #include #include #include #include #include #include class task_h

2018-01-23 16:00:23 389

转载 Linux后台研发超实用命令总结

作者 码龙喵 转载请注明出处1.概述计算机领域水太深了,不可能什么都记住,所以只需要理解并记住核心的原理,其他的交给网络,用的时候查一下就可以了。因此整理了平时工作中自己觉得好用的命令。2.系统相关查看手册命令man只查看当前下一级目录占用大小du --max-depth=1 -h查看某个进程是否在运行

2018-01-05 09:56:04 235

转载 手把手教你实现自定义的应用层协议

1.简述互联网上充斥着各种各样的网络服务,在对外提供网络服务时,服务端和客户端需要遵循同一套数据通讯协议,才能正常的进行通讯;就好像你跟台湾人沟通用闽南语,跟广东人沟通就用粤语一样。实现自己的应用功能时,已知的知名协议(http,smtp,ftp等)在安全性、可扩展性等方面不能满足需求,从而需要设计并实现自己的应用层协议。2.协议分类2.1按编码方式

2018-01-04 17:42:21 1593

转载 一致性哈希算法及其在分布式系统中的应用

作者 张洋 | 发布于 2011-10-18分布式 一致性哈希摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问

2018-01-04 16:00:21 218

原创 cpp模块中如何定义你的对外接口头文件

#define XXX_VERSION_PATCH 8#define XXX_MAKE_VERSION(major, minor, patch) \ ((major) * 10000 + (minor) * 100 + (patch))#define XXX_VERSION \ XXX_MAKE_VERSION(ZMQ_VERSION_MAJOR, ZMQ_VERSION_M

2017-11-01 16:47:32 868

转载 C++中的函数指针和函数对象总结

篇一、函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数。函数指针的声明方法:数据类型标志符 (指针变量名) (形参列表);一般函数的声明为: int func ( int x );而一个函数指针的声明方法为:int (*fu

2017-09-21 21:36:48 362

原创 如何使用工具调试linux服务程序

1、使用valgrind检测内存泄漏、内存读写出错等信息,但会使程序性能下降,须带-g调试信息,须安装使用,官网使用向导:http://valgrind.org/docs/manual/quick-start.html#quick-start.intro2、使用gperftools检测函数占用cpu时间及比例,不带-g,须安装使用,下载地址:(还须安装libunwind)h

2017-09-20 14:06:52 401

转载 一个 Linux 上分析死锁的简单方法

简介死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊

2017-09-20 14:02:48 400

转载 Linux strace命令

简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strac

2017-09-20 11:26:07 339

转载 开源C++函数库Boost内存池使用与测试

【IT168 专稿】Boost库是一个可移植的开源C++函数库,鉴于STL(标准模板库)已经成为C++语言的一个组成部分,可以毫不夸张的说,Boost是目前影响最大的通用C++库。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容,是一个“准”标准库。  Boost内存池,即boost.pool库,是由Boost提供的一个用于内存池管理的开源C++库

2017-09-14 21:48:06 1030

原创 最多能喝多少瓶啤酒呢?

啤酒2元一瓶,四个瓶盖可换一瓶啤酒,2个空瓶也可换一瓶啤酒,10元最多可以喝几瓶?#include "stdafx.h"const int BOTTLE_COUNT_TO_A_BEER = 2;const int GAP_COUNT_TO_A_BEER = 4;const int PRICE_OF_A_BEER = 2;void get_beer_count(int& beer_c

2017-08-15 22:04:09 1748 1

转载 C++11 中std::function和std::bind的用法

关于std::function 的用法: 其实就可以理解成函数指针 1. 保存自由函数void printA(int a){ cout<<a<<endl;}std::functionvoid(int a)> func;func = printA;func(2);1234567812345678保存lambda表达式std::functionvoid()>

2017-06-30 11:15:18 386

转载 Makefile常用万能模板(包括静态链接库、动态链接库、可执行文件)

本文把makefile 分成了三份:生成可执行文件的makefile,生成静态链接库的makefile,生成动态链接库的makefile。  这些makefile都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码的同一目录下,然后就可以用 make 来生成目标文件了。  下面是三个makefile的源代码:1、生成可执行文件的makefile

2017-06-14 09:36:16 668

转载 Google 的开源技术protobuf 简介与例子

今天来介绍一下“Protocol Buffers ”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯到了protobuf,想想干脆单独开一个帖子算了。  ★protobuf是啥玩意儿?  为了照顾从没听说过的同学,照例先来扫盲一把。  首先,protobuf是一个开源 项 目(官方站点在“

2017-05-29 09:55:29 423

转载 网络编程 TCP分包粘包MTU和MSS之间的关系分析

其实在以前的文章中介绍了和这个话题相关的文章,TCP封包。这里还想继续回顾想以前的内容,把不明白的东西弄明白:IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你的IP包大于1500字节,IP层就会分片了。而1492的MTU值的来源,是因为PPPoE协议。PP

2017-05-22 09:43:38 1169

转载 svn的merge使用例子

先说说什么是branch。按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰trunk的情况下,和trunk并行开发,待开发结束后合并回trunk中,在branch和trunk各自开发的过程中,他们都可以不断地提交自己的修改,从而使得每次修改在repos

2017-05-17 10:20:08 444

转载 centos添加环境变量

在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时,则会提示命令不存在的错误,下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/l

2017-05-09 13:43:45 410

转载 linux 打开文件数 too many open files 解决方法

Linux 打开文件数 too many open files 解决方法too many open files出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。查看每个用户最大允许打开文件数量ulimit -a[plain] view plain copy fdip

2017-03-16 16:01:38 1944

转载 Git的版本和分支管理

[-]本地的分支管理远程的分支管理本地Tag管理远程Tag管理结尾及参考由于已经对Git使用比较熟悉了,此篇关于git分支和版本的的管理将不会详细记录每一个细节。如果你还不熟悉git,请先参看:[1] http://blog.csdn.net/xiahouzuoxin/article/details/9393119[2] http://blog.csdn

2017-03-15 10:26:35 881

转载 gdb调试

GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:1 在程序中设置断点,当程序运行到断点处暂停2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来3 单步执行4 运行时修改变量的值5 跟踪路径6 线程切换等等 下面以以下程序为例当我们要使用GDB进行程序的

2017-01-23 11:03:56 722

转载 C++操作mysql方法总结(3)

C++通过mysql++操作mysql的方式 使用vs2013和64位的msql 5.6.16进行操作项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍 Mysql++是官方发布的、一个为MySQL设计的C++语言的API。Mysql++为Mysql的C-Api的再次封装,它用STL(Standard Template La

2016-10-12 10:35:07 771

转载 C++操作mysql方法总结(2)

C++通过ODBC和通过MFC ODBC操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍  既然使用到了ODBC那么就要需要添加数据源了控制面板->管理工具->数据源->用户DSN->添加填写相关的数

2016-10-12 10:33:56 1112

转载 C++操作mysql方法总结(1)

C++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作  项目中使用的数据库名为booktik表为book……….(共有30条记录,只列出了部分记录,14-30未列出)一、通过mysql的C ap

2016-10-12 10:31:04 1162

转载 git 服务器+git linux客户端搭建

最近团队中在开发一些项目,由于代码经常改动,搞得头大,就想找个代码管理工具。查了一些资料,最后选择使用Git管理代码,下面将搭建的过程记录下来与各位同仁分享。(亲测可以使用)一、准备工作服务器1:IP:192.168.18.228, 操作系统:centos 7,角色:git server 服务器2:IP:192.168.18.229,操作系统:centos 7,角色:git c

2016-09-28 17:17:07 543

转载 使用 Python 创建你自己的 Shell (上)

我很想知道一个 shell (像 bash,csh 等)内部是如何工作的。于是为了满足自己的好奇心,我使用 Python 实现了一个名为 yosh (Your Own Shell)的 Shell。本文章所介绍的概念也可以应用于其他编程语言。作者:Supasate Choochaisri来源:Linux中国|2016-07-29 11:06 收藏  分享

2016-09-28 15:16:06 570

转载 Linux 平台下 Python 脚本编程入门(二)

本篇中,我们会讨论控制流(根据用户输入的信息、计算的结果,或者一个变量的当前值选择不同的动作行为)和循环(自动重复执行任务),接着应用我们目前所学东西来编写一个简单的 shell 脚本,这个脚本会显示操作系统类型、主机名、内核版本、版本号和机器硬件架构。作者:Gabriel Cánepa来源:Linux中国|2016-08-23 10:00 收藏  分享

2016-09-28 14:55:40 1418

转载 Linux平台下Python脚本编程入门(一)

在这个由两篇文章构成的系列中,我们将回顾 Python 的基础部分,希望初学编程的你能够将这篇实用的文章作为一个编程入门的跳板,和日后使用 Python 时的一篇快速指引。作者:Gabriel Cánepa来源:Linux中国|2016-08-22 21:53 收藏  分享众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需

2016-09-28 14:46:20 3591 1

转载 URI和URL的区别

这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletRequest.

2016-06-08 11:25:04 462

转载 WS_CLIPCHILDREN和WS_CLIPSIBLINGS易理解的解说

相信,人多人都对WS_CLIPCHILDREN和WS_CLIPSIBLINGS具体的属性不是很理解,尤其是对WS_CLIPSIBLINGS的理解,通过网络上查资料,看了四五次,每次看懂了但是下次遇到又忘记了,让人很揪心,但是经过几次的实际应用,我终于明白了他们的含义。下面以我在开发实际应用中正确使用来通俗易懂的来说明:(1)WS_CLIPCHILDREN          

2016-06-01 10:36:10 565

转载 Qt入门之信号与槽机制

一. 简介就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。信号和槽机制是 Qt 的核心机制,可以让编程人员将互不相关的对象绑定在一起,实现对象之间的通信。信号当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做

2016-05-19 11:32:32 780

转载 HTTP 协议详解

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT

2016-05-18 15:45:22 593

转载 rtsp协议详解

概述RTSP简介RTSP(Real Time Streaming Protocol), 实时流传输协议, 是TCP/IP协议体系中的一个应用层协议, 由哥伦比亚大学, 网景和RealNetworks公司提交的IETF RFC标准. 该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据. RTSP在体系结构上位于RTP和RTCP之上, 它使用TCP或RTP完成数据传输.

2016-05-16 11:47:38 2574

转载 用实例分析H264 RTP payload(RTSP参数分析)

H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。 在SDP中也说明了本次会话的属性SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H2

2016-05-16 10:19:13 1745

转载 各种语音编码总结

speech codec (G.711, G.723, G.726, G.729, iLBC)各种各样的编解码在各种领域得到广泛的应用,下面就把各种codec的压缩率进行一下比较,不正确之处望各位同行指正。Speech codec:    现主要有的speech codec 有:G.711, G.723, G.726 , G.729, ILBC,QCELP, EVRC, AMR,

2016-05-14 17:16:18 15642 1

转载 将ocx和DLL文件打包成cab文件,实现IE浏览器在线安装

我们打开淘宝等网站时,IE浏览器会提示安装空间,这个控件便是用于对用户名密码进行加密的ActiveX控件。如何在我们的站点上安装如此控件,让用户可以通过简单的点击便可方便使用我们的空间呢?下面是如何让在你的站点上安装控件的方法。 基础知识html语言中Object标签定义和用法定义一个嵌入的对象。请使用此元素向您的 XHTML 页

2016-05-13 16:35:30 3384

转载 H.264 RTPpayload 格式------ H.264 视频 RTP 负载格式(包含AAC部分解析)

H.264 RTPpayload 格式------H.264 视频 RTP 负载格式1. 网络抽象层单元类型 (NALU)NALU 头由一个字节组成, 它的语法如下:     +---------------+      |0|1|2|3|4|5|6|7|      +-+-+-+-+-+-+-+-+      |F|NRI|  Type   |

2016-05-11 15:34:48 6621

转载 实现RTP协议的H.264视频传输系统

1.  引言       随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人们的首选,流媒

2016-05-10 17:52:07 887

空空如也

空空如也

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

TA关注的人

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