随笔分类 - 编程语言 / C/C++
摘要:【Linux网络编程】Reactor模式与Proactor模式 Reactor模式 Reactor 模式是指主线程即 IO 处理单元只负责监听文件描述符上是否有事件发生,有则立刻将该事件通知给工作线程即逻辑单元,除此之外,主线程不做任何其它实质性的动作。读写数据,接受新的连接,以及处理客户请求均在工
阅读全文
摘要:【Linux网络编程】基于 EPOLL 的 SOCKET 通信 epoller.h #ifndef EPOLLER_H #define EPOLLER_H #include <sys/epoll.h> #include <fcntl.h> #include <unistd.h> #include <
阅读全文
摘要:【Linux网络编程】Socket Api函数 TCP/IP 协议族 TCP/IP 协议族有 sockaddr_in 和 sockaddr_in6 两个专用的 socket 地址结构体,它们分别用于 IPv4 和 IPv6,在此只将 IPv4,如下为 struct sockaddr_in: stru
阅读全文
摘要:【Linux网络编程】字节序 字节序 字节序就是字节在内存中存储的顺序,如32位整数0x01234567,在内存中存储时,有如下两种顺序: 大端序将数值的高位存储在低位地址中,小端序则相反。 网络字节序 网络中传输数据均采用大端序。 Linux字节序转换函数 在 #include <netinet/
阅读全文
摘要:libevent库bufferevent与evconnlistener 介绍 bufferevent是libevent提供的一个自带输入输出缓冲区的事件模型,bufferevent监听socket文件描述符的读写等事件,并自动将内核缓冲区中的数据读写到用户区的缓冲区,并自动触发相应的回调函数。 ev
阅读全文
摘要:libevent库实现简易tcp服务器 流程分析 创建socket,设置端口复用,绑定四元组,开始监听。 初始化event_base结构体。 编写监听事件的回调函数和客户端读事件的回调函数。 初始化tcp监听事件,并加入event_base中。 开始event事件处理循环。 释放所有事件占用资源。
阅读全文
摘要:libevent库事件驱动 libevent库使用 创建并初始化event_base结构体。 创建并初始化event结构体,并设置文件描述符、监听事件、回调函数、回调函数参数。 将event添加到event_base中。 开始事件处理循环,监听事件是否发生,并在满足条件时自动调用回调函数。 事件处理
阅读全文
摘要:libevent库event_base结构体 event_base结构体是event事件处理框架的基础,每个event_base结构体持有一个事件集合,同时通过调用操作系统提供的事件处理接口(如select)对事件进行监控和处理。 基本函数 event_base_new() 函数原型 #includ
阅读全文
摘要:libevent库介绍与安装 libevent介绍 libevent是一个异步事件处理软件函式库。libevent是一个提供异步事件通知的软件库。libevent提供了一组应用程序编程接口(API),libevent API提供的机制允许开发者为事件注册回调函数,例如文件描述符上的发生了特定事件或者
阅读全文
摘要:RAII是什么 说明:本文是这个视频的笔记,中间可能添加其他来源的资料和自己的理解,请注意区别,如有错漏,敬请指出。 什么是RAII?为什么需要RAII? RAII,全称资源获取即初始化(英语:Resource Acquisition Is Initialization),它是在一些面向对象语言中的
阅读全文
摘要:C++学习资源 参考手册 【网站】cppreference.com 【网站】cpluplus.com 【网站】微软 C/C++ 文档 C++基础 【网站】C++教程|菜鸟教程 C++高级特性 【视频】侯捷《C++面向对象高级开发》 【视频】侯捷《STL和泛型编程》 【视频】侯捷《C++内存管理》 【
阅读全文
摘要:VC6内存分配 目录VC6内存分配函数调用栈SBH(Small Block Heap) 小区块内存管理_heap_init 函数HEADER 类型定义程序第一次内存分配(1)_malloc_crt 函数_heap_alloc_dbg 函数_heap_alloc_base 函数__sbh_alloc_
阅读全文
摘要:MinGW 是啥 什么是 MinGW MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可
阅读全文
摘要:关于C++中指针和引用的理解 指针 众所周知,数据类型其实只对人有意义,数据在机器里存储,就是连续的0和1,机器本身不会区分所谓的数据类型。 而编程语言里数据类型的意义,就是如何用0和1来表示不同的数据类型,以及如何把不同数据类型的运算转换成0和1的运算。 所以对任何一种具有数据类型的变量来说,其本
阅读全文