自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(167)
  • 资源 (1)
  • 问答 (15)
  • 收藏
  • 关注

原创 在IOCP框架下实现基于TCP通讯的高并发聊天功能

/*使用技术:1. IOCP框架2. 多线程及其同步3. 线程池4. 回调函数的优雅实现//实现功能:1. 客户端启动后自动连接服务器,断开后自动重连机制2. 客户端与客户端通讯都需要通过服务器中转3. 客户端之间聊天模式类似于钉钉,会提示消息发送成功以及消息已送达功能4. 服务器对客户端接入、断线、以及重连都有做相应处理//实现过程中思考的问题:1. IOCP如何...

2018-11-14 19:24:01 1114

原创 C++自定义线程池以及通过线程池处理业务展示

本实例通过3部分进行展示:将线程池定义成一个类,用来管理线程,该线程池设计成单例模式设计了一个工作类,即工作线程类,用于处理业务(使用基于事件的同步方式和原子操作同步方式)设计了一个任务分发管理类,用于模拟实际业务使用线程池实现处理业务自定义事件类:.h#pragma once#include<windows.h>class LanEvent{public:La...

2018-11-08 19:36:56 699

原创 select模型的测试结果

2018-10-30 17:37:16 333

原创 select模型运用-客户端

// ClientBySelect_Test1.cpp : 定义控制台应用程序的入口点。//#include “stdafx.h”#include #include #include <stdio.h>#include <tchar.h>#include <WinSock2.h>#include #include <assert.h&am

2018-10-29 18:20:29 1313

原创 使用Select实现C/S通讯之服务端

// ServerBySelect_Test1.cpp : 定义控制台应用程序的入口点。//#include “stdafx.h”#include <WinSock2.h>#include #include <stdio.h>#include #include using namespace std;#pragma comment(lib,“ws2_32....

2018-10-29 18:19:06 334

原创 AVL树的创建、查找、删除节点、增加节点和释放内存的实现

include “stdafx.h”include < iostream >include < stdlib.h >include < stdio.h>include < vector>include < assert.h>using namespace std;

2018-08-22 13:08:42 3708 1

原创 二叉树的前序、中序、后序遍历实现

// 中序遍历.cpp : 定义控制台应用程序的入口点。 //include “stdafx.h”include < iostream>include < stdlib.h>include < stdio.h>include < assert.h>include < vector

2018-08-19 21:38:20 177

原创 二叉搜索树(Binary Search Tree)

二叉搜索树(Binary Search Tree),也称为“二叉查找树”,是指一颗空树或者具有下列性质的二叉树: 1. 任意节点的左子树不空,则左子树上所有节点的值“小于”它的跟节点的值。 2. 任意节点的右子树不空,则右子树上所有节点的值“大于”它的跟节点的值。 3. 任意节点的左子树、右子树也都为二叉查找树。二叉查找树的特点:左子树<根节点<右子树!!!...

2018-08-13 14:38:12 449

转载 直线加速器的原理与结构组成

直线加速器的原理与结构组成

2023-02-08 13:43:33 568 1

翻译 一文详解关系代数和SQL语法

一文详解关系代数和SQL语法

2023-02-01 09:38:23 228 1

原创 TCP连接详解

TCP连接详解

2022-11-22 16:37:39 343

转载 互斥量与信号量区别

互斥量与信号量

2022-10-14 15:15:26 106

转载 剂量计算的发展历程

剂量计算

2022-10-12 14:41:45 148

转载 CT、MRI、PET、PET-CT、PET-MRI的区别

CT、MRI、PET、PET-CT、PET-MRI

2022-10-10 15:43:13 940

原创 windows系统跨机创建共享文件夹映射与访问

windows系统跨机创建共享文件夹映射与访问。

2022-09-23 13:31:23 405

原创 技术能力评估&开发质量评估

技术能力评估&开发质量评估

2022-09-07 09:46:33 336

原创 Qt的QML与Sketch和photoshop互通的适配

QML与Sketch和photoshop互通

2022-08-16 14:09:08 508

原创 浅谈高级程序员、架构师、技术经理、技术总监和CTO的理解

高级程序员、架构师、技术经理、技术总监和CTO的职责

2022-08-12 14:41:15 436

原创 windows下C++内存泄漏检测

windows下C++内存泄漏检测

2022-08-04 17:00:01 263

原创 Fiber——windows 下的协程API

Fiber

2022-08-01 14:39:13 499

转载 RAID详解

点击链接

2022-04-15 13:29:55 77

原创 c++智能指针

C++ 11shared_ptrunique_ptrweak_ptrauto_ptr(被 C++11 弃用)Class shared_ptr 实现共享式拥有(shared ownership)概念。多个智能指针指向相同对象,该对象和其相关资源会在 “最后一个 reference 被销毁” 时被释放。为了在结构较复杂的情景中执行上述工作,标准库提供 weak_ptr、bad_weak_ptr 和 enable_shared_from_this 等辅助类。Class unique_ptr 实现独占式

2022-02-17 13:49:32 154

转载 k8s技术原理好文

点击链接

2022-02-16 14:03:48 116

原创 高并发&分布式高手博客

陶辉

2022-02-10 15:35:44 321

转载 socket的close&shutdown函数的区别

点击此链接

2022-02-09 18:09:17 106

原创 MySQL的日志分析

总结:参考文章:relay logundo logredo logbinlog

2021-12-27 16:41:01 227

原创 polaris(北极星)——腾讯开源服务治理

北极星介绍github地址c++版

2021-12-21 17:17:09 1687

转载 Thrft、Protocol Buffers、Avro三者模式的演变

点击链接

2021-12-07 10:32:50 107

转载 微服务设计到部署

点击链接

2021-12-06 15:11:49 80

原创 C++显示调用dll

参考文献以下以调用TestLoadlibraryEx.dll为例:C++隐式调用:调用方需要TestLoadlibraryEx.dll、TestLoadlibraryEx.lib、include相关文件C++显示调用:调用方只需要TestLoadlibraryEx.dll接下来详细说明“C++显示调用”的流程:1. TestLoadlibraryEx.dll工程的制作过程:(1). 新建项——》新建一个“模块定义文件(.def)”,如下图所示:(2).def文件中输入如下属性:LIBR

2021-09-08 15:55:10 2717 4

原创 记录一次使用std::string在for循环中debug环境下奔溃的bug

bug提示bug原因:

2021-07-30 15:50:14 226

原创 关于网络编程的一些实用技巧和细节

转载自:https://cloud.tencent.com/developer/article/1107097这些年,接触了形形色色的项目,写了不少网络编程的代码,从windows到linux,跌进了不少坑,由于网络编程涉及很多细节和技巧,一直想写篇文章来总结下这方面的心得与经验,希望对来者有一点帮助,那就善莫大焉了。本文涉及的平台包括windows和linux,下面开始啦。一、非阻塞的connect()函数如何编写我们知道用connect()函数默认是阻塞的,直到三次握手建立之后,或者实在连不上超

2021-07-23 11:01:35 135

原创 C++模板类成员函数

/** * \class CallbackMethod * \brief Abstract callback-style method. * \see RpcMethod */class CallbackMethod{public: /** * \brief Destructor. */ virtual ~CallbackMethod(); /** * \brief Call the method. * \param msg J

2021-07-22 14:49:16 975

原创 C++ 超时实现——单线程模式

void WaitRecv(std::string &data, unsigned int timeout) { time_t cur_time = time(NULL); while(data.size() == 0 && static_cast<time_t>(cur_time + timeout) > time(NULL)) { this->Recv(data);

2021-07-20 20:50:12 808

转载 正则表达式30分钟入门

正则表达式30分钟入门

2021-07-09 17:24:36 38

转载 Qt进程间通讯——共享内存

Qt进程间通讯——共享内存

2021-06-01 11:18:25 136

转载 std::shared_ptr 的使用

点击查看

2021-05-21 15:13:08 367

原创 C++跨动态库dll内存分配与释放问题总结

结论:如果两个dll(或者exe调用dll)的CRT链接为MD,则可以跨动态库分配和释放;如果一个是MT,另一个是MD则会有问题(比如崩溃)。利用虚函数的动态绑定技术,动态绑定分配释放内存的new和delete等,可以解决上述1的问题,例如shared_ptr的实现。但如果shared_ptr包装是vector等类型,在调用和被调用中都涉及到vector的修改的话,仍然会有问题,因为两个地方都会有释放和分配。详情见以下两个文章:跨dll的内存分配释放问题智能指针shared_ptr为何可以实

2021-04-11 14:17:46 1961

原创 Qt同步线程

点击看原文Qt同步线程我们知道,多线程有的时候是很有用的,但是在访问一些公共的资源或者数据时,需要进行同步,否则会使数据遭到破坏或者获取的值不正确。Qt提供了一些类来实现线程的同步,如QMutex,QMutexLocker,QReadWriteLock,QReadLocker,QWriteLocker,QSemaphore和QWaitCondition。下面我们分别来看它们的用法:QMutex首先,简单的了解一下QMutex提供的函数。构造函数:QMutex ( RecursionMode mod

2021-03-17 15:36:05 567

原创 git 拉取指定分支代码

拉取指定分支代码:git clone --branch 输入你要拉取的分支名字 git仓库的地址示例:拉取指定深度的某个分支代码git clone --depth 输入深度值 --branch 输入你要拉取的分支名字 git仓库的地址示例:...

2021-03-04 15:45:46 1568 1

TCP IP通讯学习记要

读《TCP IP网络编程》书记要。此文档为该书的读书笔记,记录其核心内容

2018-10-23

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

TA关注的人

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