你知道的越多,你不知道的越多。
-
前言
-
什么是 I/O ?
-
网络 I/O 又是什么?
-
为什么会有网络 I/O 模型?
-
I/O 模型
-
阻塞 I/O
-
非阻塞 I/O
-
异步 I/O
-
信号驱动模型
-
I/O 多路复用
-
-
结语
前言
大家好,我是 moon,上一次和大家聊了一下 socket相信大家对 socket 有了一定的认识,对于 socket 还不熟悉的同学,可以先看看 socket 这篇文章,今天这篇文章是基于 socket,再和大家讲一讲「网络I/O」相关的知识,也刚好为后续 netty 的文章做下铺垫
什么是 I/O ?
I:其实就是 「Input」,输入
O:其实就是 「Output」,输出
所以 I/O 很好理解,就是输入和输出
生活中最简单的例子,你用微信和别人聊天,你「发送信息」给对方,就是「输入」,「对方回给你信息」,你接受到了,就是「输出」。
一般情况下,在软件中我们常说的 I/O 是指「网络 I/O 和磁盘 I/O」,今天我们就来聊下网络 I/O
网络 I/O 又是什么?
其实网络 I/O 就是网络中的输入与输出,我们再说详细点,正常的网络通信中,一条消息发送的过程中有一个很重要的媒介,叫做「网卡」,它的作用有两个
-
一是将电脑的数据封装为帧,并通过网线(对无线网络来说就是电磁波)将数据发送到网络上去
-
二是接收网络上其它设备传过来的帧,并将帧重新组合成数据,发送到所在的电脑中。