首页
登录 | 注册

网络 一些概念了解

1. Reactor和Proactor模式的主要区别

Reactor和Proactor模式的主要区别是真正的读取和写入操作,是由谁来完成的。

Reactor:应用程序自己读取或者写入数据。(应用程序完成)

Proactor:应用程序不需要进行实际的读写过程,只需要从缓存区读取或者写入即可。内核会读取缓存区或者写入缓存区到真正的IO设备。(内核完成)

2. 同步和异步,阻塞和非阻塞

同步和异步是针对内核来说的

阻塞和非阻塞是针对应用程序来说的

2.1 所谓阻塞 I/O,是指应用程序在执行 I/O 操作后,如果没有获得响应,就会阻塞当前线程,不能执行其他任务。

2.2 所谓非阻塞 I/O,是指应用程序在执行 I/O 操作后,不会阻塞当前的线程,可以继续执行其他的任务。

2.3 所谓同步 I/O,是指收到 I/O 请求后,系统不会立刻响应应用程序;等到处理完成,系统才会通过系统调用的方式,

告诉应用程序 I/O 结果。

2.4 所谓异步 I/O,是指收到 I/O 请求后,系统会先告诉应用程序 I/O 请求已经收到,随后再去异步处理;等处理完成后,系统再通过事件通知的方式,告诉应用程序结果。

3. TCP socket通信

服务器端流程如下: 
(1)创建serverSocket  
(2)初始化 serverAddr(服务器地址) 
(3)将socket和serverAddr 绑定 bind 
(4)开始监听 listen  
(5)进入while循环,不断的accept接入的客户端socket,进行读写操作write和read 
(6)关闭serverSocket 


客户端流程:  
(1) 创建clientSocket 
(2) 初始化 serverAddr 
(3) 链接到服务器 connect  
(4) 利用write和read 进行读写操作 
(5) 关闭clientSocket



2020 jeepxie.net webmaster#jeepxie.net
10 q. 0.008 s.
京ICP备10005923号