Linux-C
文章平均质量分 85
青城山小和尚
这个作者很懒,什么都没留下…
展开
-
Linux C Http 文件服务器实现
备注:Linux C语言实现 Http文件服务器 可上传可下载文件该文件服务器是根据Tinyhttpd的http源码的基础上实现的整体思路: 创建socket监听请求,收到请求后线程分离,在线程中进行请求数据的解析;根据解析到的消息我们分类处理,目前该文件服务器可提供的文件包括html、css、jpg、gif;动态文件为PHP(也可用C实现动态网页)原创 2017-12-08 23:09:31 · 4542 阅读 · 2 评论 -
C 语言实现MySQL连接池
引言:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个; 连接池技术大多运用在高并发服务器的后面;在现有的大型高并发服务器上,每一次线程与数据库的数据交换都属于网络连接,频繁的启停连接是极不合理的,特别是在大型Web服务器上过长时间的延迟在用户体验上极其糟糕,而重复的建立与断开数据库连接对系统的运行也有相当大的影响;连接池是一个抽象的原创 2017-12-11 16:29:24 · 4677 阅读 · 12 评论 -
SIGPIPE信号导致服务器进程退出的原理及解决办法
引言:在采用TCP协议进行文件流传输时,客户端的不正常退出导致的服务器进程直接退出。而一个稳健的高并发服务器上这样的情形是不被允许的,接下来将剖析其产生服务器进程退出的根本原因;原创 2017-12-20 11:57:01 · 1941 阅读 · 2 评论 -
线程池原理及C语言实现线程池
备注:该线程池源码参考自传直播客培训视频配套资料; 引言:线程池是一种多线程处理形式,大多用于高并发服务器上,它能合理有效的利用高并发服务器上的线程资源;在Unix网络编程中,线程与进程用于处理各项分支子功能,我们通常的操作是:接收消息 ==> 消息分类 ==> 线程创建 ==> 传递消息到子线程 ==> 线程分离 ==> 在子线程中执行任务 ==> 任务...原创 2017-12-14 15:12:41 · 53092 阅读 · 66 评论 -
TCP粘包原理及解决方案
TCP协议是网络通信协议中十分重要的协议,相比于UDP协议来说,它是一个可靠的传输协议,并且是一个面向数据流的协议;所谓面向数据流,其实是指数据传输是以流式的方式传输,这些传输的数据就像一条河里的水,他们之间是没有缝隙的,也就是说TCP协议传输的数据是无边界的;(其实TCP粘包概念个人感觉不恰当,毕竟TCP传输是以流式的方式) 而UDP是面向数据包的,收发数据包要么全收要么不收原创 2017-12-19 12:00:11 · 8072 阅读 · 7 评论 -
dup2函数参数顺序配图分析
引言: 之前在学习Linux进程间通信时,使用了管道来传递数据。而管道与管道之间对接采用dup2函数进行连接,发现dup2函数的两个参数填充顺序着实有趣,两个管道之间到底是怎么对接成功的呢?学习了一下以配图分析的方式呈现。一、使用场合首先介绍这个图: 父进程fork出一个子进程,传递数据给进程,希望子进程去调用一个外部程序来处理并返回数据(比如CGI程序)。 流程: 父进程fo...原创 2018-04-03 09:37:00 · 1424 阅读 · 4 评论 -
mmap共享存储映射(存储I/O映射)系列详解
mmap共享存储映射又称为存储I/O映射,是Unix**共享内存**概念中的一种。 在Unix进程间通信中,大致有1. 管道 pipe(),用于父子进程间通信(不考虑传递描述符)2. FIFO(有名管道) 非父子进程也能使用,以文件打通3. 文件 文件操作,效率可想而知4. 本地套接字原创 2018-04-18 22:10:20 · 7781 阅读 · 9 评论 -
网络高并发服务器之epoll接口、epoll反应堆模型详解及代码实现
**epoll接口**是为解决Linux内核处理大量文件描述符而提出的方案。该接口属于Linux下**多路I/O复用接口**中select/poll的增强。其经常应用于Linux下高并发服务型程序,特别是在大量并发连接中只有少部分连接处于活跃下的情况 (通常是这种情况),在该情况下能显著的提高程序的CPU利用率。(1) epoll接口的一般使用(2) epoll接口 + 非阻塞(3) epoll接口 + 非阻塞 + 边沿触发(4) epoll反应堆模型 (重点,Libevent库的核心思想)原创 2018-08-03 16:52:52 · 18227 阅读 · 30 评论 -
Web服务器工作原理详解(基础篇)
概述:Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。Web服务器和HTTP服务器可以说是同一个东西,当然非得细分的话,HTTP服务器是建立在HTTP协议之上的提供文档浏览的服务器,更多的是...原创 2018-08-14 17:12:00 · 73006 阅读 · 7 评论