自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (4)
  • 收藏
  • 关注

原创 cppweb 1.0.3发布,基于C++开发的web服务器

cppweb是一个基于C++开发的 WEB 服务器,支持C/C++、Python、Java等多语言混合开发WEB应用。cppweb同时也是一个跨平台的微服务开发框架,通过两个核心组件webrouter与webserver提供微服务系统中的接口路由网关、服务注册中心、业务服务容器、定时任务调度中心以及接口文档平台等功能,cgi应用只是其中业务服务容器的部分功能,我们的目标不是实现一个最好cgi容器,而是打造一个统一web开发和传统服务开发的框架。基于cppweb的微服务集群框架如下图所示,图中绿色部分

2020-10-31 17:07:42 740

原创 C++程序如何编译运行

C/C++hello word程序详解下面是C++入门的hello world程序源码#include <iostream>using namespace std;int main(int argc, char* argv[]){ cout << "hello world" << endl; return 0;}你可以在将上述源码复制粘...

2019-06-09 12:27:33 12479

原创 我为什么用C/C++

参加工作7年了,作为一个全栈码农,工作中C++、Java、Python、Lua甚至前端Javascript都有涉及,但是自己私下都是用C/C++做项目(包括个人网站后台都是用C++开发的)。在我的技术认知范围内C/C++能完成一切任务,我偏执地用C++实现个人笔记网站(https://www.winfengtech.com),甚至开发了一个cppshell将C/C++当作脚本语言来使用,言归正...

2019-05-07 22:31:35 1963 1

原创 用标准C++实现任务队列

下面介绍一个简单的任务队列,查看完整代码。在实现任务队列前需要定义一个接口与一个工具类任务接口:子类实现接口的run方法来处理具体任务。 自旋锁类:用于保护任务队列的并发访问(用C++11原子操作实现)。任务接口源码如下//任务接口class WorkItem{public: //接口方法必须在子类实现 virtual void run() = 0;public:...

2018-11-22 13:47:59 5353 3

原创 推荐一款C/C++在线编译器

推荐一款好用的C/C++在线编译器,地址:https://www.winfengtech.com/compile,平时写些小demo比较方便,在手机上也可以编程。支持代码折叠、语法高亮等功能,全屏模式,界面可视面积大。支持本地代码收藏功能,你也可以导出代码保存本地,然后在其他地方导入使用,界面如下:在手机上效果如下面所示(学习党可收藏)...

2018-11-19 16:33:59 22189 2

原创 cppweb框架实现代码即接口文档

cppweb服务接口文档平台在cppweb框架中每个webserver业务服务都可以访问/app/workspace/pub/apidoc.htm页面来查看自身的接口文档,只要你在接口代码最后面添加如下代码,webserver就会帮你自动生成接口文档,完全做到代码与文档的同步,你也不用花精力单独维护接口文档。我们的cppweb框架已开源:https://gitee.com/xungen/cppweb//-----------------------------------------------.

2020-09-15 21:32:19 669

原创 基于C++11开发的web服务器cppweb开源了

功能说明作者初衷是编写一个web框架支持C++开发cgi程序,于是cppweb诞生了。 作者希望cppweb是一个大一统的框架,即可用于传统服务端编程也可用于web编程,作者希望http协议能做的更多,框架包括以下两个核心服务: webserver:业务服务容器,通过配置也可升级为服务注册中心与定时任务调度中心。webrouter:接口路由网关服务,对外提供统一的流量入口,主要负责请求分发以及黑白名称配置。 cppweb在读数据采用epoll网络模型,以任务队列的方式处理具体请求,回包也

2020-09-12 16:52:09 1659 1

原创 一个简单的定时任务调度中心设计方案

在日常开发中除了给前端开发接口,还要写一些定时处理任务,比如一个活动需要每天定时给所有用户派发奖励。一个成熟服务框架需要一个全局的定时任务调度中心,通过定时任务调度中心可以查看服务有哪些定时任务以及定时任务的执行情况,对于执行失败的定时任务可以手动执行等。我们公司的微服务架构没有定时任务调度中心,每个服务通过类似crontab定时任务配置来管理自身的定时任务,为了保证每个服务高可用,我们给每个服务都部署了两个节点,对于一些不能并发执行的定时任务我们往往需要给定时任务加一个分布式锁,有时甚至需要修改服务的c

2020-06-20 16:10:40 1848

原创 C++跨平台JSON序列化与反序列化开源库

JsonReflect介绍JsonReflect是基于C++11实现跨平台JSON序列化与反序列化库。支持将对象序列化为JSON字符串或者将JSON字符串反序列化的对象。作者利用宏与C++11的typeid运算符实现一种动态反射机制,大大简化了序列化与反序列化工作。安装方法1、下载源码git clone https://gitee.com/xungen/jsonreflect.git2、...

2020-04-30 21:57:46 1049

原创 记一次python的print函数引发的血案

问题描述我最近项目是基于自研的webserver框架实现的,支持C++、Java、Python等语言混合开发,上线一年多都没有发现重大问题。但就在昨天快下班时,运营同事突然打电话说生产环境无法导入报表,于是我登录生产环境,看了一下日志,发现报表文件已经正常上到服务器,但在解析时无法正常打开。我们的报表都是xls格式,导入功能是Python开发的,我们选择xlrd库来解析xls文件。查看日志发现...

2019-06-15 19:59:18 1112

原创 推荐一款Markdown在线编辑器

推存一款简单的Markdown在线编辑器,地址:https://www.winfengtech.com/markdown,最大的特点就是简单,没有其他多余的功能,可即时查看Markdown的展示效果。操作界面如下:...

2019-06-09 20:36:49 459

原创 推荐一款HTML在线编辑器

推存一款简单的HTML在线编辑器,地址:https://www.winfengtech.com/htmview,最大的特点就是简单,没有其他多余的功能,自动引入JQuery与Vue等开源库,可即时查看前端代码的展示效果。操作界面如下:...

2019-06-08 12:23:40 5836 1

原创 free命令详解

命令简介linux下可以使用free命令看到系统实际使用内存的情况,一般用free -h命令查看内存占用情况。而系统实际可用内存是不是free部分呢,不是的,系统实际内存占用以及可用内存有如下几个加减法:内存占用:used - buffers - cached可用内存:buffers + cached + free命令选项-b:以Byte为单位显示内存使用情况-k:以KB为单位显...

2019-06-08 12:02:22 7429 3

原创 netstat命令详解

命令介绍netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。命令选项-a:显示所有连线中的SOCKET-c:持续列出网络状态-e:显示网络其他相关信息-g:显示多重广播功能群组组员名单。-i:显示网络界面信...

2019-06-07 09:16:36 61023

原创 du命令详解

du命令介绍du命令(disk usage)用来展示磁盘使用量的统计信息。du和df算是一对同门师兄弟,du侧重在文件夹和文件的磁盘占用方面,而df则侧重在文件系统级别的磁盘占用方面。这两个命令都非常的基础,也是每位 Linux工程师都应该掌握的命令。命令选项-k:以KB为计数单位-m:以MB为计数单位-b:以字节为计数单位-a:对所有文件与目录进行统计-c:显示所有文件和目录的大...

2019-06-05 21:05:56 26106

原创 进程照妖镜strace命令

strace命令介绍strace是个功能强大的Linux调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。在Linux系统中,用户程序运行在一个沙箱(sandbox)里,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调...

2019-06-04 11:48:21 432

原创 推荐一款好用的redis客户端工具

推荐一个好用的redis客户端工具redis官方客户端(redis-cli)每次都要指定连接IP与端口,连接成功后还要执行auth命令进行口令认证,这个过程比较繁琐,auth命令需要人工干预,不方便自动化执行redis命令。给大家推荐一款基于RedisConnect开发的redis客户端工具,只要你设置以下环境变量就可以直接执行redis命令,整个过程无需指定连接IP与端口,也不用执行auth...

2019-06-02 18:43:28 19476 1

原创 lsof命令介绍

lsof命令简介lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接...

2019-06-02 10:11:14 791

原创 推荐一款C++连接Redis的开源库

分享一个开源的Redis连接库RedisConnect,官方地址:https://www.winfengtech.com/redisconnect介绍1、RedisConnect是基于C++11实现的简单易用的Redis客户端。2、源码只包含一个头文件与一个命令行工具源文件,无需编译安装,真正做到零依赖。3、自带连接池功能,调用Setup方法初始化连接池,然后执行Instance方...

2019-05-28 20:13:12 6294 1

原创 Nginx实现动态负载均衡

为什么用nginxnginx是经过实践证明的、安全稳定的反向代理服务器,淘宝、新浪等大型互联网公司都有nginx的身影。nginx经过线上各种网络环境验证,能够帮你隔离各种复杂的网络环境,轻松支持10000+的同时在线连接数,同时拥有多种成熟的负载均衡策略,能够方便横向拓展后端服务。今天我们说一说nginx负载均衡策略。nginx有以下几种负载均衡策略1、基于轮询方式轮询是最基本的配...

2019-05-24 15:43:08 2448

原创 微服务架构分析

什么是微服务架构微服务是指按业务与数据将统一的系统拆分成若干相对独立自治的子服务,各服务只实现特定功能(如登录服务只实现登录相关的逻辑),服务以接口的形式为应用或其他服务提供功能与数据(如订单服务调用登录服务的检查登录态接口来判断用户是否登录),这种按业务拆分系统的解决方案称之为微服务架构。微服务架构的特点微服务是指开发一个组小型的但有业务功能的服务,每个服务都有自己的处理和轻量...

2019-05-22 14:23:40 945

原创 C++如何优雅地释放资源

C++语言机制保证当对象创建时候自动调用构造函数,当对象超出作用域时自动调用析构函数。利用RAII机制(即将资源与对象生命周期绑定),我们可以优雅地实现资源管理。智能指针(std::shared_ptr和std::unique_ptr)是RAII最具代表的实现,使用智能指针,可以实现自动的内存管理,再也不需要担心忘记delete造成的内存泄漏。毫不夸张的来讲,有了智能指针,代码中几乎不需要再出...

2019-05-21 20:51:21 3184

原创 微服务架构简介

什么是微服务架构微服务架构是指按业务与数据来源将统一的系统拆分成若干相对独立自治的子服务,各服务只实现特定功能(如登录服务只实现登录相关的逻辑),服务以接口的形式为应用或其他服务提供功能与数据(如订单服务调用登录服务的检查登录态接口来判断用户是否登录),这种按业务拆分系统的解决方案称之为微服务架构。微服务架构的特点微服务是指开发一组小型的但有业务功能的服务,每个服务都有自己的处理...

2019-05-21 15:40:08 566

原创 C++反射机制简单实现

一直以来,C++都未能支持反射机制,在C++中要实现类似Java等语言的反射机制需要另外写代码保存类型相关信息,然后在运行时使用。C++引入了typeid运算符,可以在运行时获取类型相关信息,说明C++在编译时是会保存类型相关信息的,只是C++标准要求保存的运行时类型信息不足以支撑类似Java的反射机制。下面给出一个简单的例子,说明程序在运行时获取类型相关信息。class Object...

2019-05-13 15:27:51 1038

原创 C++11可变参数模板

点击查看完整代码C++11支持可变参数模板,可以代替C语言中的va_list实现类型安全的可能参数函数(比如printf函数)。下面用C++11可变参数模板实现支持多个参数的求和函数与求平均值函数。定义单个参数求和函数(用于终止模板递归展开)template<class DATA_TYPE>static DATA_TYPE sum(DATA_TYPE val){ ...

2019-05-02 11:51:42 803

原创 C/C++在线编译器对比

下面给大家推荐几款C/C++在线编译器。https://www.winfengtech.com/compile国内打开速度超快,支持语法高亮与代码折叠,同时还支持本地代码收藏功能,全屏模式,界面可视面积大,GCC原生错误提示,手机上可完美运行,你值得拥有。http://ideone.com打开速度一般,支持代码折叠,广告篇幅太大,界面可视面积小。http://c...

2019-05-01 09:01:27 4518

原创 优化域名转IP地址

点击查看源码getaddrinfo/gethostbyname等方法会到DNS服务器查询域名与IP地址的映射关系,查询过程中需要发送并接收UDP包进行数据交互,这个过程就会产生延时。实际上域名与IP地址的映射关系不会频繁变动,所有没有必要每次都到DNS服务器上查询域名与IP地址的映射关系,我们可以封装一个域名转IP地址的方法,添加一级本地DNS缓存,从而显著提高程序中域名转IP地址的速度。...

2019-04-29 11:21:25 329

原创 2018年工作总结

2018年工作总结回顾2018年,完整参与黄金军师、送1KG白银收益、资讯与主页改版等需求的开发与维护,以及日常生产问题的跟踪与排查。在以上工作中收获很多,下面以黄金军师系统为例总结一下近一年工作中的问题与收获。黄金军师系统由以下四个基本服务组成:1.军师信息查询服务军师信息查询服务提示军师基本信息查询,排行榜查询,军师持仓与交易动态查询等功能,主要接口添加缓存,减少数据库的查询压力。...

2018-12-22 09:19:43 2201 1

原创 C语言修改终端文字颜色

LINUX系统与WINDOWS系统都有修改终端文字颜色的系统调用。下面分别给出LINUX系统与WINDOWS系统修改终端文字颜色的代码。查看完整测试代码LINUX系统修改终端颜色源码typedef enum{ cRED = 31, cBLUE = 34, cGREEN = 32, cWHITE = 37, cYELLOW = 33} CONSOLE_COLOR;void...

2018-11-23 16:52:09 1546 1

平衡二叉树源码

平衡二叉树源码,可直接编译运行。实现插入、删除、清空、查找、遍历等操作。

2015-05-14

DiskFinder

DiskFinder是一款数据恢复软件,能够支持主流的文件格式,支持误删除、快速格式化操作后的文件恢复。 下载地址(360网盘) : http://yunpan.cn/cjBIwQ4axpRge 访问密码 2925

2015-05-12

简单贪吃蛇 游戏开发

一款简单的贪吃蛇游戏,保证初学者一看就会!

2011-03-19

C语言标准库函数手册

主要介绍了一些C的标准库函数,全中文介绍。

2011-03-13

空空如也

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

TA关注的人

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