前面我们介绍了缓冲区buffer,现在继续来看NIO中另外一个重要的概念:通道。在传统的基于流的IO模型中,一个流要么是输入流用来进行读取要么是输出流用来写入,而在NIO中,数据都是在通道上进行传输的,通道将缓冲区中的数据块移入或移出数据源,例如文件、socket等。单看整个Channel类结构层次是比较复杂的,但是对于网络编程来说,我们只需要关注三个重要的类:SocketChannel、ServerSocketChannel和DatagramChannel,如果只关注TCP的话,就只有前两个了。