自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小鱼儿的博客

IT C++ linux

  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++ 计数器类(单例、线程安全)

思路:1. 使用单例保证计数器类全局引用唯一;2. 使用范围锁确保多线程并发引用计数器的准确性;3. 使用unsigned __int64类型作为计数器的类型。当计数器到达ULLONG_MAX(类型最大值)时,复位重新技术,并将循环计数。确保使用的计数器数量可计算。代码:1. SNGenertor.h其中,调用NewSNGenertor接口为创建计算器类。其中,min为计数器起始值,max我计算器最大值(当为0时为ULLONG_MAX)。日常使用直接调用Get接口即可。#pra

2021-04-12 11:47:01 1726

原创 QT5 HTTP、websocket协议实现SLL认证

最近在使用QT开发应用程序,其中涉及到使用HTTP、WebSocket协议加SSL认证与JAVA服务器通信(即发送请求时uri头部为HTTPS,WSS)。QT给出的实现方法是调用QNetworkRequest(HTTP协议使用)、QWebSocket(websocket协议使用),添加QSslConfiguration设置,示例代码如下: // HTTP协议 QNetworkRequest request; QSslConfiguration config; QSslC

2020-06-13 13:53:06 1686 1

原创 inotify_event中文件名变长的内存处理

最近在使用inotify做文件系统变化的监控时,对inotify_event中的name的内存对齐理解出现了误差,在此记录一下。文件事件通过inotify_event 结构体表示,它通过使用文件读取函数 read (文件描述符由inotify_init() 返回)来获得,结构体内容如下:struct inotify_event { __s32 wd; ...

2020-05-07 09:12:07 462

原创 envoy实现C++服务间的socket消息转发

本文介绍使用envoy中的tcp代理实现C++服务间的socket消息转发。1. 确定宿主机与容器间网络由于C++服务中的客户端及服务器程序直接在宿主机上运行,所有需要提前确定好宿主机与docker容器是否能正常通信2. envoy.yaml配置文件,注意监听过滤器及clusters中配置的是容器网络的IP地址admin: access_log_path: /tmp/admi...

2020-04-27 18:54:39 593

原创 ubuntu18.04安装构建envoy环境

安装docker环境1. 先确定环境中是否存在docker旧版本,如果存在就先卸载。笔者使用的是最新安装的虚拟机系统,不需要执行此步骤sudo apt-get remove docker docker-engine docker-ce docker.io2. 更新apt包。关于镜像仓库,ubuntu默认的是美国的地址,比较慢且容易出现网络下载问题,建议改成国内的镜像仓库,笔者使用的是阿里...

2020-04-23 16:09:46 1047

原创 C++使用正则表达式判断GUID格式

首先,我们先了解一下GUID的概念及正则表达式。 GUID,全局统一标识符。在Windows 平台上,GUID 应用非常广泛:注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。通用的GUID的结构如下typedef struct _GUID {DWORD Data1; WORDData2; WORDData3; BYTEData4[8]; }GUID;举一个例子:假设一个GUID的格式...

2018-03-19 10:56:40 1293

原创 CentOS 7.x系列安装mysql数据库问题解决方法

在部署linux环境(CentOS7.4+Nginx+MySQL)时,安装使用mySQL数据库时遇到了如下问题:一、安装了一个mySQL数据库,执行systemctl start mysqld, 发现数据库没起来,安装失败;二、在windows系统上使用Navicat连接mySQl数据库失败。现将解决方法总结如下,解决安装失败问题一、完全删除之前安装的mySQL及相关文件: yum remov...

2018-02-26 14:22:02 231

原创 MFC桌面应用嵌入子进程界面方法及其消息同步

简述 之前在工作中开发了一款嵌入百度地图的插件(.dll),集成到系统软件中测试发现在操作地图后软件内存一直在增长,而且刷新不能释放。起初怀疑是MFC的webbrowser控件缓存未释放,也尝试使用ChtmlView类进行开发,任然没有解决该问题。后来在浏览器上测试百度地图,内存也在一直增长,短时间内不能释放。 为了不让内存增长影响到系统软件,最终决定将地图插件封装成程序(.ex

2018-01-31 10:52:47 1020

原创 windows核心编程之用户方式中的线程同步

8.1 原子访问:互锁的函数家族原子访问:是指线程在访问资源时能够确保所有其他线程都不在同一时间内访问相同的资源。对于互锁函数,需要了解它们运行的速度极快。调用一个互锁函数,通常会导致执行几个CPU周期(通常小于50),并且不会从用户方式转为内核方式(通常这个需要执行1000个CPU周期)。几个互锁函数:  (1) LONG InterlockedExchangeAdd (

2015-10-29 08:52:33 174

COM学习资料

包含《COM原理与应用》,《COM技术内幕》,《Essntial COM》及COM技术.chm 等

2016-03-23

空空如也

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

TA关注的人

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