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