4 NK_test

尚未进行身份认证

大部分人愿意做任何事来逃避真正的思考

等级
TA的排名 3k+

再见CSDN

csdn一直伴随着我大学的时光,记录了自己的学习历程,在这里也获得了很大的成就感和小小的荣誉。很遗憾,这个平台并没有紧跟上互联网内容发展的趋势:*用户体验*原创内容*优质交流自己也工作两年的时间了,现在更加注重优质原创内容的分享,有兴趣的读者可以关注我的微信公众号萱士记,会不定期更新一些关于技术、生活和音乐的文章。...

2019-08-04 16:50:11

针对移动机器人的人体目标检测和跟踪系统的实现

预期效果机器人可以在较为简单的生活环境背景中,实现对单个人体目标的检测和实时跟踪,做出前进、后退、左转和右转等基本操作。运行环境Windows7、VisualStudio2013EmguCv2.4.9小R科技-51duinoWiFi视频智能小车机器人(更换加强版的路由模块)基本思路检测:我们要利用智能小车并不优秀的硬件设备来实现对人体目标的检测和实时跟踪,检测部分我们使用人脸来定位人

2017-07-02 16:50:48

基于protobuf service使用rpc入门教程

protobuf简介什么是protobufProtocolBuffers(ProtocolBuffer/protobuf)是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。在解析速度、数据描述文件大小方面都相比xml有着很大的提高,同时,我们不用再写那些吃力不讨好的协议解析类的

2017-05-24 21:38:33

Muduo 网络库源码分析 之 关键技术点总结

最近又把muduo网络库仔细研究了一遍,收获良多。本文将对muduo中的设计思想以及关键的技术细节进行总结和分析,当然由于篇幅的原因这里更多的是对关键技术的简略提及,具体细节还需要读者自己去查找学习资料。muduo/baseDate类日期类的封装,使用Julian(儒略日)可以方便的计算日期差。具体公式和思想见儒略日的计算Exception类异常类的封装,对外提供what()输出错误信

2017-04-28 18:41:59

从wireshark中学网络分析(二)

在上一篇文章中提到了TCP的延迟确认,延迟确认并不一定能提高性能,在某些场景下,开启延迟确认甚至会严重降低网络传输性能。(一)下面列出几个开启延迟确认降低网络性能的场景:场景一:想象这样一个场景,服务端开启了延迟确认,客户端在同一时刻发送了9个TCP包,其中3、4、5号因为拥塞丢失了。那么传输过程中发生了以下事件:到达服务器的6、7、8、9号包触发了4个“Ack3”,于是客户端快速重传

2017-03-02 17:34:27

从wireshark中学网络分析(一)

网络是很抽象的,但是在wireshark里面却又是相对直观的。这里我们列举了5个问题来进一步直观地学习TCP协议,并且从中了解分析网络性能的一般方法。问题一:关于子网掩码和网关服务器A和B的网络配置如下:A:IPaddress:192.168.26.129Subnetmask:255.255.255.0Defaultgateway:192.168.26.2B:IPaddr

2017-02-26 17:34:07

搭建基于openvswitch vxlan协议的多主机KVM虚拟机连接环境

背景通过在物理机上启动多个KVM的方式可以用来模拟需要使用大量物理机的环境,并进行服务功能的一些验证。同一物理机上的KVM之间是可以进行通信的,但是不同物理机之间的KVM通信就需要使用openvswitch来进行连接。VXLAN(VirtualeXtensibleLocalAreaNetwork)是一种将二层报文用三层协议进行封装的技术,可以对二层网络在三层范围进行扩展。VXLAN屏蔽了UD

2016-12-04 18:43:00

2016小米在线编程题解

题目一世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?思路:很简单啊,异或操作,然后右移算出1的个数。classSolution{public:/***获得两个整形二进制表达位数不同的数量**@paramm整数m*@paramn整数n*

2016-10-21 12:57:13

Effective C++ 简要条款分析(一)

EffectiveC++简要条款分析(一)c++实在是一门深奥晦涩的语言,不同专业水准的程序员写出来的代码质量有着天壤之别,以至于必须出版一本图书提供一些“专家经验”来引导c++程序员写出更加高质量的代码。《EffectiveC++》就是这样一本书。建议你在有一定的代码积累后阅读这本书,这里我总结一些我读完有感触的条款,和大家一起分析。为驳回编译器(暗自)提供的机能,可将相应的成员函数声

2016-10-01 22:57:44

CPU 负载观察和性能监测

CPU负载和利用率CPU的负载和利用率是两个不同的概念,但是他们都可以在top命令中查看。CPU利用率显示的是程序在运行期间实时占用的CPU百分比,而CPU负载显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着CPU的负载大。两者之间没有必然的关系。常用命令介绍:*uptime首先我们需要明白loadaverage后面的三个数字代表什么,他们分别代表前一分钟,

2016-09-28 22:55:39

使用Muduo完成数独和八数码问题求解服务器

在剖析完Muduo网络库源码之后,我们试着完成一个高效的数独和八数码问题求解服务器。先说说为什么要选择这两个问题?数独问题一直是陈硕老师很喜欢的问题,在muduo网络库中多次提到并有示例。八数码问题是我很喜欢的问题,所以在此综合完成求解数独和八数码问题的高效服务端程序。编写这样一个看似简单的服务程序的技术含量远高于所谓的控件堆砌型开发,虽然有muduo网络库帮助我们处理网络事件,我们只需要

2016-05-28 21:08:50

编译原理:LL(1)文法 语法分析器(预测分析表法)

设计要求:对于任意输入的一个LL(1)文法,构造其预测分析表,并对指定输入串分析其是否为该文法的句子。思路:首先实现集合FIRST(X)构造算法和集合FOLLOW(A)构造算法,再根据FIRST和FOLLOW集合构造出预测分析表,并对指定的句子打印出分析栈的分析过程,判断是否为该文法的句子。指定文法://文法E->TKK->+TKK->$T->FMM->*FMM

2016-05-22 20:54:31

C++ 捕获本机网卡的IP包并对其解析的实现

编程要求:捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IPDatagram).这是一个与硬件无关的虚拟包,由首部和数据两部分组成.首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的.在首部的固定部分的后面是一些可选字段,其长度

2016-05-08 21:54:19

python: 知乎大规模(34k)用户爬虫

前些天学习python,完成了python练习册的大部分习题:https://github.com/Show-Me-the-Code/python(我的github上有习题代码,欢迎自取)。之后看到@salamer的一个python爬虫项目,觉得很不错。于是自己花了4天的时间完成了一个大规模爬取知乎用户信息的爬虫,由于个人网络原因,爬取12小时,获得了34k用户的信息(理论上可以爬全站的信息,可能

2016-05-06 14:51:25

编译原理:C语言词法分析器

编译原理的实验:完成对C++语言的词法分析先说一下整体框架:基类:Base 封装了一些基础的字符判断函数,如下:intcharkind(charc);//判断字符类型 intspaces(charc);//当前空格是否可以消除 intcharacters(charc);//是否是字母 intkeyword(charstr[]);//是否是关键字 in

2016-04-25 22:09:57

Muduo网络库源码分析(六)TcpConnection 的生存期管理

TcpConnection是使用shared_ptr来管理的类,因为它的生命周期模糊。TcpConnection表示已经建立或正在建立的连接,建立连接后,用户只需要在上层类如TcpServer中设置连接到来和消息到来的处理函数,继而回调TcpConnection中的 setConnectionCallback和setMessageCallback函数,实现对事件的处理。用户需要关心的事件是有限的,

2016-04-22 15:29:13

Muduo网络库源码分析(五)Acceptor和TcpServer类

首先,我们先提一下对Socket的封装(不复杂,所以简单说一下)。Endian.h: 封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc:封装了socket相关系统调用。Socket.h/Socket.cc(Socket类): 用RAII方法封装socketfiledescrip

2016-04-16 01:09:29

Muduo网络库源码分析(四)EventLoopThread和EventLoopThreadPool的封装

muduo的并发模型为oneloopperthread+threadpool。为了方便使用,muduo封装了EventLoop和Thread为EventLoopThread,为了方便使用线程池,又把EventLoopThread封装为EventLoopThreadPool。所以这篇博文并没有涉及到新鲜的技术,但是也有一些封装和逻辑方面的注意点需要我们去分析和理解。EventLoopTh

2016-04-15 13:34:02

Muduo网络库源码分析(三)线程间使用eventfd通信和EventLoop::runInLoop系列函数

先说第一点,线程(进程)间通信有很多种方式(pipe,socketpair),为什么这里选择eventfd?eventfd是一个比pipe更高效的线程间事件通知机制,一方面它比pipe少用一个filedescripor,节省了资源;另一方面,eventfd的缓冲区管理也简单得多,全部“buffer”只有定长8bytes,不像pipe那样可能有不定长的真正buf

2016-04-12 23:59:56

Muduo网络库源码分析(二) 定时器TimeQueue,Timer,TimerId

首先,我们先要明白为什么需要设计这样一个定时器类?在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用Linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。Muduo的TimerQueue采用了最简单的实现(链表)来管理定时器,它的效率比不上常见的binaryheap的做法,如果程序中大

2016-04-04 19:53:11

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!