目录
(一)TCP:
(二)Socket:
(三)BIO:
(四)NIO:
(五)Netty:
(六)WebSocket:
(七)总结:
为什么要做这个就不多说了,前因请去看这篇文章的(1)2024-3-26的③
Java软件开发实习见闻
(一)TCP:
既然要做TCP,那么肯定要知道TCP是什么,计算机网络这门课在我脑子里已经没剩多少了,也就记得七层啊,四层啊,TCP的三次握手啊,DCP不安全什么一些东西了(#捂脸)。如果有跟我相同情况的人,请看以下文章:
计算机网络回顾
(二)Socket:
原生的网络编程接口,具体内容看一下几个文章:
什么是Socket
Socket TCP UDP 联系
这个看完了之后应该就对Socket有了一些了解,接下来粘贴一些C知道AI生成的内容,关于Socket和Netty的对比
Socket和Netty是两种网络编程框架,它们在实现网络通信方面有一些区别。
1. Socket是Java提供的原生网络编程接口,它基于传统的阻塞式I/O模型。使用Socket编程时,需要手动处理连接、读写数据、关闭连接等操作。这种方式比较底层,需要开发者自己处理各种网络细节。
2. Netty是一个基于NIO的高性能网络编程框架,它封装了底层的网络细节,提供了更高级的抽象和功能。Netty使用事件驱动模型,通过回调机制处理网络事件,可以实现非阻塞式的异步通信。相比于Socket,Netty具有更好的性能和可扩展性。
具体区别如下:
- 编程模型:Socket是基于阻塞式I/O模型,而Netty是基于非阻塞式I/O模型。
- 性能:Netty采用了事件驱动和异步处理机制,可以处理大量并发连接,具有更好的性能表现。
- 可扩展性:Netty提供了丰富的组件和扩展点,可以方便地进行定制和扩展。
- 协议支持:Netty支持多种协议,如HTTP、WebSocket等,而Socket需要自己实现协议解析和处理。
如果上面内容是对的话,那么就可以简单的理解为Mybatis和原生JDBC的关系。
(三)BIO:
在了解什么是Netty之前,应该先要明白什么是BIO,BIO(blocking I/O) 中文名同步阻塞,他是一种I/O模型,并且是最传统的一种I/O模型。具体的内容可以查看这篇文章:
详细JAVA-BIO介绍与优缺点
一文彻底解释清楚Java 中的NIO、BIO和AIO
(四)NIO:
如果你看了上面的BIO文章,你就应该明白BIO在处理高并发等问题上的瓶颈,所以在java1.4为了解决这个问题,引入了NIO模型,我的理解就是他基于BIO(是否基于我也不清楚对不对)引入了一些新的概念和组件诞生的。更好的了解什么是NIO请看一下的文章:
Java 中 NIO 看这一篇就够了
(五)Netty:
什么是Netty,我的理解就是你为什么要用原生JDBC而不用Mybatis(如果你用过,那是真的又臭又长,我做的swing项目里那些try看着是真的难受,不要问我为什么做swing,问就是我是S__B)所以Netty其实就是一个简化了使用的框架,你只需要传进去东西,其余的Netty就帮你实现了。具体的文章请看下面:
超详细Netty入门,看这篇就够了!
(六)WebSocket:
我没有想到的是websocket竟然是一种协议,他不是框架。websocket和html反而有很深的关系。具体的内容请看下面:
全面理解WebSocket与Socket、TCP、HTTP的关系及区别
(七)总结:
根据需求,我明白了我要用WebSocket来完成功能,因为我要用在网页上实现一种类似聊天频道的东西。