Linux服务器编程
文章平均质量分 65
老乐大魔王
超级大蓝狗!
展开
-
Reactor模型学习笔记
学习Reactor模型是服务器开发路上的一个重要节点!原创 2023-03-11 19:03:44 · 204 阅读 · 0 评论 -
Epoll学习笔记
对``Select``、``Poll``、``Epoll``、``Kqueue``几种I/O多路复用做测试(限制100个活动连接,并且每一个连接会有1000次写入)原创 2023-02-13 19:37:38 · 253 阅读 · 0 评论 -
生成http响应数据【Linux服务器编程】
前言非常感谢社长的开源项目TinyWebServer,让我这个自学服务器编程的小白也能感觉受益匪浅所需前置知识va_list 解决变参问题 头文件:<stdarg.h> 重点!在本项目中实现了代码复用,减少代码量http响应报文格式基础makefile知识数据结构http状态码//本次仅用到个别状态,可根据需求更改代码enum HTTP_CODE { NO_REQUEST = 0,//http解析用到 GET_REQUEST,//http解析用到 B原创 2021-12-31 18:00:59 · 233 阅读 · 0 评论 -
vscode+gdb远程调试配置
launch.json{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", //会显示在debug界面的debug名称原创 2021-12-29 14:42:30 · 633 阅读 · 0 评论 -
gcc基础
gcc工作流程预编译 ->编译->汇编->链接流程介绍预编译阶段操作展开头文件替换宏消除注释结果:生成.i结尾的预处理文件编译阶段操作源代码翻译成汇编代码结果:生成.s结尾的汇编文件汇编阶段操作将汇编文件翻译为二进制文件结果:生成.c结尾的二进制文件链接阶段操作将多个二进制文件连接起来结果:生成可执行的二进制文件gcc工作流程动图展示...原创 2021-12-27 20:04:07 · 854 阅读 · 0 评论 -
浅谈进程池(半同步/半异步实现)——Linux高性能服务器学习笔记
目录什么是进程池?为什么要使用进程池?如何实现进程池?问题1:客户任务是否具有上下文关系问题2:进程池里子进程这么多,应该通知哪一个子进程?问题3:选好子进程后,主进程如何将客户"交付"给子进程?什么是进程池?线程池就是服务器预先创建好的一组子进程,并且子进程的数量是由人为规定的(和CPU数量差不多最好,数量太多或太少甚至对性能提升没有实质性的帮助)为什么要使用进程池?为了实现高效的并发模式,我们使用多进程实现多进程的方法:动态创建进程/进程池动态创建进程的缺点:1.动态创建耗时2.切换耗原创 2021-10-12 20:17:23 · 325 阅读 · 0 评论 -
Linux端C++聊天室思路详细图解
目录聊天室的组成:客户端+服务器端客户端具体功能:服务器端具体功能:客户端实现思路:服务端实现思路:客户端功能图解:pipefd(管道)具体数据传输图解:服务器端图解:监听文件描述符获取连接图解:向连接文件描述符传输数据图解客户端代码:服务器端代码聊天室的组成:客户端+服务器端客户端具体功能:1.从标准输入终端读入用户数据,并将用户数据发送至服务器2.往标准输出终端打印服务器发送给它的数据服务器端具体功能:1.接受客户数据2.将客户数据发送给每一个登录到该服务器上的客户端(发送方除外)客户端原创 2021-09-23 17:34:02 · 817 阅读 · 0 评论 -
操作文件操作符的工作模式:LT(电平触发)&ET(边缘触发)实验对比
什么是LT和ET?LT(Level Trigger)模式:LT模式是默认的一个工作模式,在这种模式下epoll相当与一个效率较高的poll。当epoll_wait检测到有事件发生时,并将此事件通知给应用程序去处理,此时应用程序可以选择不处理该事件,而未被处理完全的事件epoll_wait会重复通告应用程序,直至应用程序被处理。ET(Edge Trigger)模式:ET模式则是epoll的高效工作模式,在此模式下,ET模式则和LT模式相反,epoll_wait检测到有事件发生时,并将此事件通知给应用程原创 2021-09-22 16:10:04 · 314 阅读 · 0 评论