clipp示例
摘要:
clipp/1.2.3 #include <iostream> #include <string> #include <clipp.h> # define __VERSION "0.0.0.1" int main(int argc, char* argv[]) { bool help = false
fmt示例
摘要:
fmt/11.1.1 #include <fmt/core.h> #include <fmt/format.h> #include <fmt/chrono.h> //更复杂的格式,如日期和时间,可以使用 fmt/chrono.h 头文件: #include <fmt/ranges.h> //对于容器
一文看懂IO多路复用【转】
摘要:
原文:https://zhuanlan.zhihu.com/p/115220699 有小改 本文让你理解 什么是IO多路复用 IO多路复用解决什么问题 目前有哪些IO多路复用的方案 具体怎么用 不同IO多路复用方案优缺点 1. 什么是IO多路复用 一句话解释:单线程或单进程同时监测若干个文件描述符是
自定义协议通信协议实现简易群聊
摘要:
基础需求 简易版聊天室,仅为演示自定义协议,所以只添加了登录登出功能。 代码部分相当粗糙,很多场景没有进行细致考虑,仅展现了一个思路。 首先进行一下基本流程分析 服务端启动以后,监听某个地址和端口,接收新的客户端连接。 连接建立以后,客户端发送登录请求,服务端进行校验并返回请求的结果。 如果验证通过
关于零长度数组的思考
摘要:
首先看一下以下的结构声明 struct Packet { int cmd; int len; char body[0]; }; 可以看到body被声明为一个长度为0的字符数组。经过测试,sizeof(Packet)的值为8,也就是说body实际上并没有分配内存。这种数组被称作零长度数组(Arrays
C++ 实现基于TCP的聊天室
摘要:
需求以及思路 客户端启动以后,需要去连接服务端,并在控制台输入消息发送到服务端,服务端收到该消息后发送给所有已连接的客户端。 所以客户端需要做的事情只有两个: 接收用户输入并将其发送到服务端 接收服务端消息并将其显示到控制台 服务端要做的事情也是两个: 接待新连接上的客户端,为其分配一个服务者 接收
关于Select Model的两篇译文
摘要:
文章来源 LINUX PROGRAMMING - GETTING STARTED WITH THE SELECT MODEL DIVE INTO THE SELECT MODEL GETTING STARTED WITH THE SELECT MODEL select模型用于在指定时间内监听用户感兴
Socket 初探
摘要:
什么是Socket 在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据 socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用
Little Endian & Big Endian
摘要:
什么是字节序 字节序是指在多字节数据类型(如整数、浮点数等)的字节在内存中的存储顺序。 主要有两种字节序:大端字节序(Big-endian)和小端字节序(Little-endian)。 Little-Endian 低字节在内存低地址端,高字节在内存高地址端 Big-Endian 高字节在内存低地址端
单例模式笔记
摘要:
Singleton 单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要显
静态库中单例不唯一的情况
摘要:
提出问题 A作为静态库,封装了一个单例类,共享库B和共享库C使用A,D作为可执行程序,使用B和C,那么这个单例是否唯一? Chatgpt的回答如下 如果A是一个共享库,封装了一个单例类,并且B和C都使用了A,那么D作为可执行程序,使用了B和C,这个单例类在整个程序中仍然是唯一的。单例类的唯一性是相对
conan - 基本使用
摘要:
原文:https://docs.conan.io/2/tutorial/consuming_packages.html Basic 安装conan pip install conan 打印conan依赖安装路径 conan config home 查看profile conan profile sh
conan - 安装并使用Spdlog
摘要:
介绍 Very fast, header-only/compiled, C++ logging library. https://github.com/gabime/spdlog.git 安装spdlog Header-only version 复制include文件夹到项目中,并使用C++11。
QT 界面阻塞相关事项
摘要:
Q1 界面阻塞与资源初始化 问题描述:在启动一个界面时,需要执行一个耗时的初始化的操作,如果像下面这种写法,则会导致主线程被阻塞。 int main(int argc, char* argv[]) { QApplication a(argc, argv); MainWindow w; w.show(