
unix 高级编程
wangxiaoangg
这个作者很懒,什么都没留下…
展开
-
浅谈tcp socket的backlog参数
最近看redis源码,redis服务在初始化的时候,会设置 tcp_backlog参数;该参数是用于设置底层tcp socket的backlog参数;backlog参数主要用于底层方法int listen(int sockfd, int backlog), 在理解backlog参数之前,先了解下tcp在内核的请求过程,tcp的三次握手:client发送SYN到server,将状态修改为SYN_SEND,如果server收到请求,则将状态修改为SYN_RCVD,并把该请求放到syns queu.原创 2020-10-30 18:02:51 · 614 阅读 · 0 评论 -
UNIX环境高级编程——epoll函数使用详解
一.概述 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。 并且,select最多同时监听1024个fd,当然,可以通...转载 2019-06-17 19:56:43 · 616 阅读 · 0 评论 -
UNIX网络编程(第3版)环境搭建
1.环境说明:macOS 10.14.52.源码下载地址:http://www.unpbook.com/src.html3.解压获的源码 按照README依次编译执行QUICK AND DIRTY===============Execute the following from the src/ directory: 1 ./configure # try t...原创 2019-08-15 19:24:11 · 973 阅读 · 0 评论 -
Linux IO模式及 select、poll、epoll详解
一 概念说明在进行解释之前,首先要说明几个概念:用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(...转载 2019-09-02 20:36:41 · 2228 阅读 · 2 评论