第2章 NIO入门
在本章中,我们会分别对JDK的BIO、NIO和JDK1.7最新提供的NIO2.0的使用进行详细说明,通过流程图和代码讲解,让大家体会到随着Java I/O类库的不断发展和改进,基于Java的网络编程会变得越来越简单,随着异步I/O功能的增强,基于Java NIO开发的网络服务器甚至不逊色于采用C++开发的网络程序。
本章主要内容包括:
传统的同步阻塞式I/O编程
基于NIO的非阻塞编程
基于NIO2.0的异步非阻塞(AIO)编程
为什么要使用NIO编程
为什么选择Netty
2.1 传统的BIO编程
网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。
在基于传统同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功之后,双方通过输入和输出流进行同步阻塞式通信。
下面,我们就以经典的时间服务器(TimeServer)为例,通过代码分析来回顾和熟悉下BIO编程。
喜欢的朋友可以添加我们的微信账号:
51CTO读书频道二维码

51CTO读书频道活动讨论群:342347198