网络通讯、NIO

#1、TCP、UDP、IP CP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,以下图: 输入图片说明java

TCP协议是面向链接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。网络

UDP协议也是传输层协议,它是无链接,不保证可靠的传输层协议。socket

#2、NIO Java NIO和IO之间的主要差异:线程

IO                NIO
面向流            面向缓冲
阻塞IO            非阻塞IO
无                选择器

Java NIO: Channels and Buffers(通道和缓冲区)code

标准的IO基于字节流和字符流进行操做的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操做,数据老是从通道读取到缓冲区中,或者从缓冲区写入到通道中。server

Java NIO: Non-blocking IO(非阻塞IO)事件

Java NIO能够让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程仍是能够进行其余事情。当数据被写入到缓冲区时,线程能够继续处理它。从缓冲区写入通道也相似。图片

Java NIO: Selectors(选择器)ip

Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(好比:链接打开,数据到达)。所以,单个的线程能够监听多个数据通道。get

Java NIO系列文章:

  1. Java NIO概述

  2. Java NIO Channel

  3. Java NIO Buffer

  4. Java NIO Scatter / Gather

  5. Java NIO 通道之间的数据传输

  6. Java NIO Selector

  7. Java NIO FileChannel

  8. Java NIO SocketChannel

  9. Java NIO ServerSocketChannel

  10. Java NIO DataGramChannel

  11. Java NIO Pipe

  12. Java NIO 与IO

相关文章
相关标签/搜索