Linux网络编程
那就逆流而上吧
这个作者很懒,什么都没留下…
展开
-
消费者生产者模式的介绍与代码实现
生产者消费者模型1.生产者/消费者问题可以描述为:两个或者更多的进程(线程)共享同一个缓冲区,其中一个或多个进程(线程)作为“生产者”会不断地向缓冲区中添加数据,另一个或者多个进程(线程)作为“消费者”从缓冲区中取走数据。生产者/消费者模型关注的是以下几点:(1)生产者和消费者必须互斥的使用缓冲区;(2)缓冲区空时,消费者不能读取数据;(3)缓冲区满时,生产者不能添加数据。2.生产者/消费...原创 2020-05-31 17:02:59 · 326 阅读 · 0 评论 -
TCP和UDP的比较(包含“三次握手,四次挥手”)
接TCP和UDP编程流程一节(2019/11/6)写在前面:这里关于TCP的“三次握手和四次挥手“”描述的不是非常清楚,详细的见后文哦~TCP和UDP的区别TCP是面向连接的,可靠的,字节流服务UDP是无连接,不可靠的,数据报服务如图(3-1)所示:1.发送方的send的次数和recv接收方的次数是不对等的;2.发送方send的次数与底层封装的TCP报文段的个数不对等;3.接...原创 2020-03-12 21:52:34 · 186 阅读 · 0 评论 -
linux网络编程|I/O复用:epoll系统调用(代码部分:待补充)
epoll———————————————————————————————————内核事件表epoll是Linux特有的I/O复用函数。它在实现和使用上与select、 poll有很大差异。首先,epoll使用一组函数(函数簇)来完成任务,而不是单个函数;epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而不用像select和poll那样每次调用都要重复传入文件描述符集或事件...原创 2020-03-15 19:17:43 · 368 阅读 · 0 评论 -
Linux网络编程|I/O复用|poll系统调用详解
poll系统调用poll系统调用和select类似,也是在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪的,poll原型是:#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout);1.fds参数是一个pollfd结构类型的数组,指向一个用户数组,存储用户关注的文件描述符以及其上...原创 2020-03-05 23:03:25 · 302 阅读 · 0 评论 -
Linux网络编程|I/O复用:select调用详解(代码实现:待补充)
IO复用1.TCP的编程从TCP的编程流程可以看出,一个客户端连接上服务器后,并不是时刻在给服务器发送数据,所以服务器程序大部分时间是在recv阻塞,为了提高服务器效率,需要将recv操作放在客户端发送数据之后,服务器程序不需要再recv阻塞,引出------->I/O复用。2.I/O复用技术使得一个程序可以同时监管多个文件描述符,当某些文件描述符上有事件发生,程序在再去处理发生事件...原创 2020-03-05 11:40:56 · 279 阅读 · 0 评论 -
学习:IP协议&HTTP协议&Web服务器
一、应用层:DNS 域名解析协议域名是什么??例如百度的域名:www.baidu.com域名的解析方式:域名转化为其对应的IP地址(1)递归式的解析----》解析都要经过根服务器继续向下。(2)迭代式的解析—》解析最终要交给本地服务器进行,减缓了根服务器的压力。二、 HTTP 超文本传输协议(1)HTTP请求报头小问题:HTTP1.0和HTTP1.1的区别是...原创 2020-02-29 10:30:52 · 250 阅读 · 0 评论