- 博客(33)
- 资源 (134)
- 收藏
- 关注
原创 Docker —— 从入门到实践
https://legacy.gitbook.com/book/yeasy/docker_practice/detailshttps://yeasy.gitbooks.io/docker_practice/content/
2018-06-29 09:39:28 504
转载 openresty实现图片(文件)服务器
点击打开链接介绍前序该功能是利用openresty的lua脚本实现的图片(文件)保存功能,文件上传使用java代码开发的数据定义上传数据和文件信息不分前后,但系统只会保存最后一对信息数据格式:{"fileDir":"文件保存的目录","fileName":"文件名"}1返回结果{"status":"是否成功","result":"返回结果",&
2018-06-28 10:09:28 1076
转载 浅谈 OpenResty
点击打开链接一.前言我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。为了开发人员方便,所以接下来我们要介绍一种整合了Nginx和lua的框架,那就是OpenResty,它帮我们实现了可以用lua的规范开发,实现各种业务,并且帮我们弄清楚各个...
2018-06-28 10:08:09 281
转载 IO系列文章4:IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞区别
点击打开链接如果面试问到IO操作,这篇文章提到的问题,基本是必问,百度的面试官问我三个问题(1)什么是NIO(Non-blocked IO),AIO,BIO(2) java IO 与 NIO(New IO)的区别(3)select 与 epoll,poll区别我胡乱说了一气,自己边说边觉得完蛋了。果然,二面没过,很简单的问题,回来后赶紧作了总结:一、什么是socket?什么是I/O操作? 我们都知...
2018-06-25 15:09:02 462
转载 IO系列文章3:Unix中的IO模型:帮你弄清阻塞VS非阻塞、同步VS异步
点击打开链接对同步和异步、阻塞和非阻塞这些名词困惑了很久了,曾经相当然的认为阻塞就是同步、非阻塞就是异步,这也是典型的错误,后来从Unix网络编程卷1上才看到最全面的解析,下面主要的内容来自Unix网络编程,算是自己的一个学习笔记吧!由于这本书中面向的是Unix编程,所以在其他的环境中IO模型可能会有稍微的不同,比如Java中的IO模型,但是也不会相差很多,毕竟Unix作为众多技术的鼻祖,很多的思...
2018-06-25 15:07:35 271
转载 IO系列文章2:5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO、Reactor和Proactor
点击打开链接看了一些文章,发现有很多不同的理解,可能是因为大家入切的角度、环境不一样。所以,我们先说明基本的IO操作及环境。本文是在《UNIX网络编程 卷1:套接字联网API》6.2节"I/O 模型 "的基础上,即UNIX/LINUX环境下的网络 IO环境下的理解,它里面给出的例子是读取(接收)网络UDP数据。下面简单写写自己对这些IO模型的理解。1、IO IO (Input/Outp...
2018-06-25 15:06:11 372
转载 CentOS 7安装sogou输入法,简单有效(不推荐,firecat安装失败)
https://blog.csdn.net/db_guy/article/details/79978631https://pinyin.sogou.com/linux/ 1.安装alien依赖软件sudo yum install alien -y12.安装依赖软件sudo yum install qtwebkit -y13.转换rpm包sudo alien...
2018-06-21 15:22:56 7757 1
转载 linux下/var/run目录下.pid文件的作用
https://www.cnblogs.com/shijingjing07/p/6444191.html1.pid文件的内容用cat命令查看,可以看到内容只有一行,记录了该进程的ID2.pid文件的作用防止启动多个进程副本3.pid文件的原理进程运行后会给.pid文件加一个文件锁,只有获得该锁的进程才有写入权限(F_WRLCK),把自身的pid写入该文件中。其他试图获得该锁的进程会自动退出。代码示...
2018-06-20 17:06:58 1888
转载 CentOS7下安装gRPC(★firecat推荐,本人亲测有效★)
文章来源:点击打开链接 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C#。gRPC 基于 HTTP/2 标准设计,带来诸如双...
2018-06-19 15:28:14 11159
转载 linux 系统下使用socket进行本地进程间通信:About AF_LOCAL in Linux
点击打开链接一、Unix domain socket Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流,又可以使用数据队列,而管道通信则只能使用字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网...
2018-06-19 11:25:09 6990
原创 我个人的protobuf-3.5.2实践:安装与测试
环境:CentOS7 1、安装github源代码下载地址:https://github.com/google/protobufchmod 777 -R protobuf-3.5.2cd protobuf-3.5.2./autogen.sh./configuremakemake installldconfig #refresh shared library cache...
2018-06-15 15:35:36 4616
原创 在Qt Creator中使用make构建,运行,调试通用C/C++项目
问:在Qt Creator中使用make构建,运行,调试通用C/C++项目?答:文件-新建文件或项目-导入项目-导入现有项目 这样导入的项目用的是make构建,需要自己写好Makefile文件后才能构建。File-New File or Project-Import Project-Import Existing Project...
2018-06-14 09:09:45 7680
转载 好工具推荐系列:分享一个使用NSIS制作安装包的UI插件
文章来源:点击打开链接nsNiuniuSkin发布以来,收到了非常多的使用者的反馈,由于前段时间比较忙,直至今日才有时间进行更新,在此向各位道个歉。本次版本发布更新内容如下:1. 修复了安装包界面上的文字有点模糊的问题2. 修复了在任务栏看到的安装界面的缩略图的ICO不显示的问题3. 增加图片轮播的时间间隔设置4. 增加对选择的路径变化的事件通知5. 增加Ctrl+F4或在任务栏关闭安装窗口时的事...
2018-06-13 15:07:30 3846 1
原创 报错storage size of ‘sa’ isn’t known,当使用std=c99编译struct sigaction
void signal_exit_func(int signo){ printf("exit signo is %d\n", signo); //CSingleton<CNet_TCPServer>::instance().stop_server();}void signal_exit_handler(){ struct sigaction sa; ...
2018-06-08 16:19:50 14843
原创 把libevent 2.1.8源码的最小堆提取出来,自己封装成定时器使用(3)(★firecat推荐★)
本篇在第2篇的基础之上,加上类似muduo活塞式的buffer。
2018-06-07 10:37:12 700
原创 我个人的Linux TCP server和client测试源码,C语言(2)(★firecat推荐★)
直接上源码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/socket.h>#include <sys/epoll.h>#include <sys/types.h>#in
2018-06-06 16:12:38 1146
原创 把libevent 2.1.8源码的最小堆提取出来,自己封装成定时器使用(2)(★firecat推荐★)
本篇实现epoll+时间堆实现定时器---参考文章:使用epoll+时间堆实现高性能定时器
2018-06-06 14:45:42 575 2
原创 把libevent 2.1.8源码的最小堆提取出来,自己封装成定时器使用(1)(★firecat推荐★)
源码来源:https://github.com/libevent/libevent/blob/release-2.1.8-stable/minheap-internal.h---参考文章:基于Libevent最小根堆定时器的C++定时器实现
2018-06-06 14:43:11 1039 2
转载 微信异步化改造实践:8亿月活、单机千万连接背后的后台解决方案
点击打开链接前言如今,微信拥有月活跃用户8亿。不可否认,当今的微信后台拥有着强大的并发能力。不过, 正如罗马并非一日建成;微信的技术也曾经略显稚嫩。微信诞生于2011年1月,当年用户规模为0.1亿左右;2013年11月,微信月活跃用户数达到3.55亿,一跃成为亚洲地区拥有最大用户群体的移动终端即时通讯软件。面对如此体量的提升,微信后台也曾遭遇棘手的窘境;令人赞叹的是,技术人及时地做出了漂亮的应对。...
2018-06-05 09:24:38 808
转载 开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石
点击打开链接前言微信于2013年开源的ibco库,是微信后台大规模使用的c/c++协程库,2013年至今稳定运行在微信后台的数万台机器上。libco在2013年的时候作为腾讯六大开源项目首次开源,ibco支持后台敏捷的同步风格编程模式,同时提供系统的高并发能力。有关开发libco的背后故事,请见文章《微信异步化改造实践:8亿月活、单机千万连接背后的后台解决方案》。libco支持的特性libco主要...
2018-06-05 09:23:39 772
转载 协程学习:协程的实现(二)--云风的协程实现,带中文注释版本
点击打开链接https://blog.csdn.net/LMFQYJ/article/details/79211084 云风coroutine源码分析https://blog.csdn.net/Swartz2015/article/details/76274688 从云风的coroutine库学习协程 本文以云风的协程框架来讲述协程的实现,学习协程的实现有利于了解协程的工作机制。...
2018-06-05 09:18:24 418
转载 协程学习:基本概念(一)--firecat推荐
点击打开链接 协程的定义 根据维基百科的描述,协程是一种程序组件,与子例程一样,但是协程更为一般和灵活,但在实践中使用没有子例程那样广泛。 https://zh.wikipedia.org/wiki/%E5%8D%8F%E7%A8%8B 其实这个概念不容易理解,可以先忽略,先看看协程到底是干什么用的。线程包含于进程,协程包含于线程。只要内存足够,一个线程中可以有任意多个协程,但某一...
2018-06-05 09:17:45 814
转载 协程概念,原理(c++和node.js实现)
文章来源:点击打开链接 什么是协程wikipedia 的定义:协程是一个无优先级的子程序调度组件,允许子程序在特定的地方挂起恢复。线程包含于进程,协程包含于线程。只要内存足够,一个线程中可以有任意多个协程,但某一时刻只能有一个协程在运行,多个协程分享该线程分配到的计算机资源。为什么需要协程简单引入就实际使用理解来讲,协程允许我们写同步代码的逻辑,却做着异步的事,避免了回...
2018-06-05 09:12:53 1424
转载 C++高性能服务框架revolver:同时支持100万个的定时事件的定时器
文章来源:点击打开链接https://github.com/yuanrongxi/revolver在高性能的服务器程序当中,定时器是必不可少的部件,而且定时器的效率是直接影响到服务的性能。在众多的开源项目中,定时器设计都有各有各的方法,例如ACE和libEvent都采用了最小堆的算法实现,还有其他的开源项目采用平衡二叉树来做定时的器管理算法。不管是最小堆还是平衡二叉树,其定时器扫描都是O(1),但...
2018-06-04 16:46:05 876
转载 epoll定时器实现系列文章:C语言实现时间堆
文章来源:点击打开链接跟上一篇,这里写一下时间堆:时间轮的滴答是固定以指定的槽间隔触发,而时间堆是以定时器堆中的最小到期时间做定时,也就是alarm(minTimeout),一旦定时器被触发,那么就删除此定时器,更新时间堆,将新的最小到期时间定时器作为新的定时。然后是时间堆的数据结构,这里用了二叉树,将二叉树的根节点作为最小最小到期时间,每次滴答就取根节点,并且是完全二叉树,因此比较容易理解,我也...
2018-06-04 15:32:00 835
转载 epoll定时器实现系列文章:C语言实现时间轮
文章来源:点击打开链接看完了《linux高性能服务器编程》对里面的定时器很感兴趣。书中提到三种定时器,分别是:基于升序链表的定时器,基于时间轮的定时器,基于时间堆的定时器。三种定时器的实现书中均是给了C++代码,不过我对C++不太感兴趣,虽然现在在做C++开发,因此写了C版本的。书中定时器只给了封装的定时器类,没有给调用层代码,我是估摸着写了调用层代码。这里做个总结,以后可以翻翻:基于升序链表的定...
2018-06-04 15:29:36 1212
转载 再次深入理解TCP网络编程中的send和recv
文章来源:点击打开链接http://blog.csdn.net/yusiguyuan/article/details/21439719http://blog.csdn.net/yusiguyuan/article/details/21390177 先明确一个概念:每个TCP socket在内核中都有一个发送缓冲区和一个接收缓冲区,TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的b...
2018-06-03 11:10:45 4864 2
转载 muduo 网络buffer--为什么 non-blocking 网络编程中应用层 buffer 是必须的(★firecat推荐★)
文章来源:点击打开链接 对于非阻塞IO的网络库来说,buffer几乎是必须的。one loop per thread is usually a good model。event loop 是 non-blocking 网络编程的核心,在现实生活中,non-blocking 几乎总是和 IO-multiplexing 一起使用,原因有两点:没有人真的会用轮询 (busy-pool...
2018-06-03 11:09:50 940
转载 魅族C++协程框架(Kiev)技术内幕,libgo
文章来源:点击打开链接http://www.cnblogs.com/yyzybb/ -- 于洋子https://github.com/yyzybb537/libgoKiev框架简介kiev是魅族科技推送平台目前使用的Linux-C++后台开发框架。从2012年立项起,先后由多位魅族资深架构师、资深C++工程师倾力打造,到本文写就的时间为止,已经在推送平台这个千万用户级的大型分布式系统上经历了近5年...
2018-06-03 10:50:03 4829
转载 Linux 下定时器的实现方式分析
文章来源:点击打开链接概论定时器属于基本的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持,但使用场景的不同,对定时器的实现考虑也不尽相同,本文讨论了在 Linux 环境下,应用层和内核层的定时器的各种实现方法,并分析了各种实现方法的利弊以及适宜的使用环境。首先,给出一个基本模型,定时器的实现,需要具备以下几个行为,这也是在后面评判各种定时器实现...
2018-06-01 17:48:46 1021
转载 网络服务器开发总结
文章来源:一、概述经过多年网络服务器开发实战,于此总结实践体会。本文涉及到异步连接、异步域名解析、热更新、过载保护与网络模型及协程等,但不会涉及到accept4、epoll等基本知识点。二、可写事件相信大多数初学者都会迷惑可写事件的作用,可能觉得可写事件没有什么意义。但在网络服务器中监听并处理可写事件必不可少,其作用在于判断连接是否可以发送数据,主要用于当网络原因暂时无法立即发送数据时监听。当有数...
2018-06-01 16:52:00 1050
转载 关于TCP封包、粘包、半包
关于Tcp封包很多朋友已经对此作了不少研究,也花费不少心血编写了实现代码和blog文档。当然也充斥着一些各式的评论,自己看了一下,总结一些心得。首先我们学习一下这些朋友的心得,他们是:http://blog.csdn.net/stamhe/article/details/4569530http://www.cppblog.com/tx7do/archive/2011/05/04/145699.ht...
2018-06-01 16:49:57 621
原创 epoll定时器实现系列文章:高性能定时器实现的三种方式---升序链表,时间轮,最小堆(★firecat推荐★)
就是说,有N多个定时器,如何来实现高效到点执行定时函数的问题。在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。定时器的结构有多钟比如链表式,最小堆,时间轮等。在不同应用场景下使用哪种需要考虑效率和复杂度? 时间轮定时器1.时间轮定时器有什么好处,或者说这种结构的定时器能决解什么问题?在升序链表定时器里,可以看到在添加一个定时...
2018-06-01 16:25:28 5125
qt-google-breakpad-demo.rar
2020-08-16
qt-creator-minimal.7z
2020-08-06
log4cplus-demo-vc141.7z
2020-01-26
Visual Leak Detector(VLD内存泄漏检测工具)支持VS2017
2020-01-23
HPGL(PLT文件格式)文件解析及VS2017工程源码
2019-11-14
图像处理中项目代码合集,包括特征提取-图像分割-分类-匹配-降噪等等 - 满城风絮 - CSDN博客.rar
2019-11-12
MFCApplication1.rar
2019-11-03
MFCResourceID v2.0.rar
2019-06-02
MFCResourceID.rar
2019-05-29
Qt Creator plugin动手实践(4)修改qtc-cppcheck源码,快捷使用cppcheck
2019-04-30
安装完MSBuild (Visual C++ 2015),项目属性页怎么都是英文?有办法解决!
2019-04-27
Qt Creator plugin动手实践(2)自己动手写qt creator插件,实现自定义工具栏按钮
2019-04-20
AutoCAD *.dxf文件解析,使用dxflib搞定polyline/spline/ellipse等复杂图形
2019-04-15
我个人的log4cplus-1.2.2的编译与测试使用,Win7+VS2013环境
2019-03-23
如何使用贝塞尔曲线和 QPainter 在 C++ 中获得圆角形状:分步指南.docx
2021-11-15
GSL科学计算函数库(GNU Scientific Library)
2021-02-16
VS2019使用clang-format实现源代码格式化排版
2021-01-18
FramelessWidget.rar
2020-12-03
QPropertyBrowserDemo_v2.rar
2020-10-08
QPropertyBrowserDemo.rar
2020-10-08
GIS系列专题(5):使用遗传算法解决最优路径问题
2020-09-13
Qt橡皮筋项目,实现打开并显示图像,还能支持ROI矩形或椭圆框选
2020-09-05
Windows环境VS2017编译skia库-m84之已编译的库文件等
2020-05-18
Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法
2020-05-17
Qt5多线程技术集锦,源码案例
2020-05-13
opengl动态库文件及配套vs2017demo
2020-05-09
Q_DECLARE_METATYPE_qRegisterMetaType.rar
2020-04-06
qt-logger.rar
2020-04-01
RoiSelectGui_v1.1.7z
2020-03-30
RoiSelectGui.7z
2020-03-27
Windows环境使用VS2017编译opencv-4.2.0和opencv_contrib-4.2.0源码,支持TBB
2020-02-11
tbb-2019_U9源码及库文件
2020-02-11
opencv_ffmpeg.rar
2020-02-11
关于实现Halcon算法加速的基础知识(多核并行/GPU)
2020-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人