网络通信、NIO

TCP、UDP与Java NIO详解
本文详细介绍了TCP和UDP这两种重要的传输层协议,并深入探讨了Java NIO的特性,包括面向缓冲的设计、非阻塞IO的支持以及选择器的概念。通过本文,读者将了解这些技术如何提高网络应用程序的效率和响应能力。

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

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

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

#二、NIO Java NIO和IO之间的主要差别:

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

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

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

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

Java NIO可以让你非阻塞的使用IO,例如:当线程从通道读取数据到缓冲区时,线程还是可以进行其他事情。当数据被写入到缓冲区时,线程可以继续处理它。从缓冲区写入通道也类似。

Java NIO: Selectors(选择器)

Java NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。

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

转载于:https://my.oschina.net/u/1446182/blog/788337

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值