随笔分类 - C++
一文看懂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
关于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 高字节在内存低地址端
静态库中单例不唯一的情况
摘要:提出问题 A作为静态库,封装了一个单例类,共享库B和共享库C使用A,D作为可执行程序,使用B和C,那么这个单例是否唯一? Chatgpt的回答如下 如果A是一个共享库,封装了一个单例类,并且B和C都使用了A,那么D作为可执行程序,使用了B和C,这个单例类在整个程序中仍然是唯一的。单例类的唯一性是相对