一、读、写缓冲区
我们使用socket进行网络通信时,通过调用socket()
函数创建一个文件描述符fd进行通信。
而socket所创建的文件描述符fd拥有两块内存缓冲区:
- 读缓冲区/接收缓冲区
- 写缓冲区/发送缓冲区
二、如何区分
问题是怎么记忆区分这两个缓冲区呢🤔️?
我们举一个例子🌰:服务端sfd给客户端cfd发送数据。
1、服务端调用write()
把数据写进发送缓冲区,也就是写缓冲区了。
2、内核读取写缓冲区数据后发送给客户端接收缓冲区,也就是读缓冲区了。
3、客户端调用read()
把数据从读缓冲区读出。
结合以上例子,我们可以联系write()/read()
函数,以及发送缓冲区/接收缓冲区,来记忆区分写/读缓冲区。