首先,要明白IO是啥东西?IO字面意思就是输入和输出,这里的输入和输出主要是针对网络间通信而言的,这也是目前大型分布式网络应用间比用的技术,因为一台机器上的应用解决了不了所有的问题,怎么办?那就利用网络间的多台机器来共同解决呗!那问题来了,网络间的电脑间怎么交互,这个交互简单理解就是有信息的输入和输出。网络IO技术就是解决这个问题的,针对Java语言来讲,目前有几中网络IO通信技术,分别是BIO/伪异步IO/NIO/AIO,这些技术都是为了解决网络间电脑之间通信问题而存在的技术或者工具。那有意思,为什么会有这么多IO技术呢?因为,早出现的技术往往有些缺陷,比如:是阻塞的,所以,后来出现的技术们就是为了弥补之前出现的技术的缺陷而存在的,当然,也是在原来的技术的基础上发展出来的。
技术的特点往往也是这样,容易理解的不厉害,难易理解的往往也是比较厉害的,因为厉害的东西都会更加的绕,有更多的内在处理逻辑,考虑的东西会更多,所以,也会变得更加复杂和难以理解。
一、Java IO 通信
传送门:
二、Netty 入门
Netty的优势:
拥有NIO的性能优势,但是没有了NIO的使用难度,使用简单、性能高、稳定、成熟、入门门槛低,像极了一位成熟优雅的女士。
三、WebSocket
传送门: