本次网络编程学习课程重点回顾了传输模型应用层、传输层、TCP协议的三次握手、四次挥手以及传输数据发送与接收数据、关闭连接、阻塞等内容。其中,着重介绍了基本IO模型、非阻塞IO模型与非阻塞套接字、非阻塞套接字实现并发以及IO多路复用等概念。
在学习非阻塞套接字与IO多路复用的过程中,首先了解了数据流的概念。数据流是一组有序、有起点和终点的字节的数据序列,包括输入流和输出流。输入流只能读取数据,而输出流只能写入数据,这样可以使程序的输入输出操作独立于相关设备。通过输入流可以获取数据,而通过输出流可以向显示器、打印机或文件中传输数据。
另外,在IO解释与IO交互方面,学习了磁盘内核空间、磁盘控制器缓冲区、用户空间进程缓冲区等概念。IO即input and output,在Unix世界中,一切皆文,这意味着IO交互是通过读取和写入数据来完成的。
在具体了解了数据流和IO交互的基础上,课程深入介绍了基本IO模型。基本IO模型是指应用程序调用系统API进行IO操作时的基本模型,包括阻塞IO和非阻塞IO两种。阻塞IO指的是应用程序如果在进行IO操作时,发现数据还没准备好,就会被阻塞,等待数据准备好再继续。而非阻塞IO指的是应用程序在进行IO操作时,如果发现数据还没准备好,会立即返回,不会被阻塞。
在学习了基本IO模型之后,课程详细介绍了非阻塞IO模型与非阻塞套接字。非阻塞IO模型是建立在基本IO模型之上的,它的特点是在进行IO操作时不会被阻塞,可以立即返回。而非阻塞套接字则是在网络编程中非常重要的一种概念,它可以实现并发IO操作,提高系统性能。
最后,课程介绍了IO多路复用的概念。IO多路复用是指通过使用select、poll、epoll等机制,使得单个进程能够同时监听多个文件描述符的IO事件,当其中任何一个文件描述符就绪时,可以进行相应的IO操作,从而提高系统的IO效率。
通过本次学习,我们深入了解了非阻塞套接字与IO多路复用的概念和原理,这对于提高网络编程的效率和性能具有重要意义。同时,我们也对基本IO模型、数据流、IO交互等基础知识有了更深入的了解,为进一步学习和应用网络编程奠定了坚实的基础。
评论0