从零实现HTTP服务器——Minihttpd(四)——半连接半反应堆线程池 发表于 2020-07-03 | 分类于 从零开始 在我们使用了epoll实现了上万并发请求的处理后,我们开始考虑程序中存在的另一瓶颈,即多线程处理请求时存在的问题。在之前的代码中,当收到了客户端的一条请求后,我们是这样做的 12345 //处理客户连接上接收到的数据else if (events[i].events & ... 阅读全文 »
从零实现HTTP服务器——Minihttpd(三)——使用epoll实现高并发 发表于 2020-06-29 | 分类于 从零开始 在实现了基本的接受请求,返回响应这一基本功能后,我们尝试提高该服务器能同时处理的并发请求数,实现面对海量请求时的高并发处理,主要使用了linux下的epoll机制。本文主要对epoll的基本原理进行讲解,同时展示epoll简单的使用方法。 epolllinux下的多路复用IO接口主要有select ... 阅读全文 »
从零实现HTTP服务器——Minihttpd(二) 发表于 2020-06-28 | 分类于 从零开始 上一篇中我们实现了接受浏览器的请求,并返回本地的网页给浏览器展示,接下来对该简单的功能进行下一步完善 Content-Typehttp响应头中非常重要的一个字段是Content-Type,它决定了浏览器如何解析返回的响应内容,如果该字段缺失则默认为text/html格式,因此我们上文返回的简单ht ... 阅读全文 »
libiconv 未定义的引用解决 发表于 2020-06-25 | 分类于 踩坑整理 最近在安装libconfig库时,编译期间出现找不到libiconv库的问题/usr/local/lib/../lib64/libstdc++.so: undefined reference to "libiconv"在仔细检查重新安装了libiconv库之后,问题依然无法解决 ... 阅读全文 »
CMake基础使用整理 发表于 2020-06-24 | 分类于 工具学习 CMake是一个跨平台的编译工具,可以一次编写,在不同平台自动生成对应的Makefile文件,减少了手写Makefile以及适配不同平台时的耗时。 前言之前大部分时候在windows端使用VS开发,因此对Makefile、CMake等工具接触较少。最近尝试从头实现一个简单的HTTP服务器,主要开发 ... 阅读全文 »
从零实现HTTP服务器——Minihttpd(一) 发表于 2020-06-23 | 分类于 从零开始 前言最近学习了一下Tinyhttpd的源码,对http服务器的基本工作原理有了简单的理解,而Tinyhttpd一方面年头较为久远(上个世纪的代码),另一方面基本全部由C语言实现,因此便萌生了用C++从头造轮子的想法,同时加深对TCP、HTTP等协议,socket编程等理解。 HTTP服务器基本工作 ... 阅读全文 »
《UnityShader入门精要》学习笔记(三)——UnityShader初探 发表于 2020-05-26 | 分类于 UnityShader学习笔记 何为Unity Shader在传统的开发模式中,开发者如果想要设置自定义的渲染模式,需要和大量文件和设置打交道(包括编写顶点着色器、片元着色器、选择图形API、加载资源到GPU等等),非常繁琐复杂。Unity Shader就是在此之上的更高级的一层封装,开发者只需要在Shader Lab中编写Un ... 阅读全文 »
《Unity Shader 入门精要》学习笔记(二)—— GPU流水线 发表于 2020-05-07 | 分类于 UnityShader学习笔记 GPU流水线GPU流水线的大致流程和步骤如下图所示其中深灰色的步骤为可编程的,浅色步骤不可编程但可配置,灰色步骤不可编程也不可配置。下面简单介绍每个步骤的基本任务。 几何阶段顶点着色器顶点着色器步骤的功能仅仅是对上一阶段CPU输出的顶点信息进行坐标变换以及计算顶点颜色光照等。这里的各顶点信息都是完 ... 阅读全文 »
《Unity Shader 入门精要》学习笔记(一)—— 渲染流水线 发表于 2020-05-06 | 分类于 UnityShader学习笔记 最近在掌握了一些图形学基础后,下定决心要学习一下Shader相关内容,加之平时开发一些游戏Demo基本上基于Unity实现,于是搬出来《Unity Shader 入门精要》开始研读,顺便整理一下笔记加深理解。本文主要是在每章学习后,首先凭印象整理出大致框架和重点概念,之后再参照原文进行校对勘误,如 ... 阅读全文 »
从零搭建教务抢课系统(五) 发表于 2020-01-13 | 分类于 简单尝试 目录(一)核心功能:模拟登陆(二)使用Cookie进行模拟登录(三)获取教务网选课列表(四)循环选课(五)断线重连 Github链接: https://github.com/njuwuyuxin/CourseGrabber断线重连目前的抢课脚本的一个缺陷在于,当用户挂机进行自动抢课时,如果出现临时 ... 阅读全文 »