Skip to content

Commit 974044c

Browse files
committed
add some ref for socket & add tip for epoll
1 parent fd22477 commit 974044c

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

docs/socket/basic.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,21 @@ Socket 编程是完成一个能够突破互联网封锁的软件的基础内容
88

99
- TCP/IP 网络编程 -- 尹圣雨
1010
- Linux 高性能服务器编程 -- 游双
11-
- [网络编程必备知识:图解 Socket 核心内幕以及五大 IO 模型 | 阻塞 IO,非阻塞 IO,IO 复用,信号驱动式 IO,异步 IO](https://www.itzhai.com/articles/necessary-knowledge-of-network-programming-graphic-socket-core-insider-and-five-io-models.html)
12-
- [似乎没那么完美的信号驱动式 IO](https://www.itzhai.com/articles/it-seems-not-so-perfect-signal-driven-io.html)
13-
- [彻底弄懂 IO 复用:IO 处理杀手锏,带您深入了解 select,poll,epoll](https://www.itzhai.com/articles/thoroughly-understand-io-reuse-take-you-in-depth-understanding-of-select-poll-epoll.html)
14-
- [ 异步 IO:新时代的 IO 处理利器 | aio,io_uring,IOCP ](https://www.itzhai.com/articles/asynchronous-programming-a-new-era-of-io-processing-weapon.html)
1511
- Linux/Unix 系统编程手册
1612
- UNIX 网络编程
1713
- UNIX 环境高级编程
1814
- Linux 设备驱动开发详解
1915
- 深入理解计算机系统
16+
17+
- [网络编程必备知识:图解 Socket 核心内幕以及五大 IO 模型 | 阻塞 IO,非阻塞 IO,IO 复用,信号驱动式 IO,异步 IO](https://www.itzhai.com/articles/necessary-knowledge-of-network-programming-graphic-socket-core-insider-and-five-io-models.html)
18+
- [似乎没那么完美的信号驱动式 IO](https://www.itzhai.com/articles/it-seems-not-so-perfect-signal-driven-io.html)
19+
- [彻底弄懂 IO 复用:IO 处理杀手锏,带您深入了解 select,poll,epoll](https://www.itzhai.com/articles/thoroughly-understand-io-reuse-take-you-in-depth-understanding-of-select-poll-epoll.html)
20+
- [ 异步 IO:新时代的 IO 处理利器 | aio,io_uring,IOCP ](https://www.itzhai.com/articles/asynchronous-programming-a-new-era-of-io-processing-weapon.html)
21+
- [网络编程范式:高性能服务器就这么回事 | C10K,Event Loop,Reactor,Proactor](https://www.itzhai.com/articles/high-performance-network-programming-paradigm.html)
22+
- [性能追击:万字长文 30+图揭秘 8 大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul](https://www.itzhai.com/articles/decrypt-the-threading-model-of-common-server-programs.html)
23+
24+
- [浅析开源项目之 io_uring](https://zhuanlan.zhihu.com/p/361955546)
25+
26+
- [原生的-Linux-异步文件操作 iouring](https://segmentfault.com/a/1190000019300089)
27+
28+
- [iouring-go](https://github.com/Iceber/iouring-go)

docs/socket/multiplexing.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,6 @@ epoll 模型大体的流程和 select 以及 poll 也是一致的。epoll 解决
2525
- 水平触发: 在报告 fd 后如果其没有被处理,或者数据没有被全部读取,那么水平触发会立刻继续报告该 fd
2626
- 边缘触发: 在报告 fd 后如果其没有被处理,或者数据没有被全部读取,那么边缘触发会在下次再报告该 fd
2727

28+
和后文将简述的 Windows 下的异步模型 IOCP 类似,二者都可以通过指针携带应用层数据。在 epoll 里,可以通过 epoll_data 里的"void \*ptr"来传递。这是一种很重要的思想,也是它们高效的原因所在:当事件的通知到来时,它不仅告诉你发生了什么样的事件,还同时告诉这次事件所操作的数据是哪些。
29+
2830
[epoll](../src/network/advanced_io/epoll.c ':include')

0 commit comments

Comments
 (0)