Mina基础(一):基础介绍


1、在应用程序中的地位

主要屏蔽了网络通信的一些细节,对Socket进行封装,并且是NIO的一个实现架构,可以帮助我们快速的开发网络通信,常用于游戏的开发、中间件服务端的程序中。

Mina最主要的工作就是把底层传输的字节码转换为Java对象,提供给应用程序;或者把应用程序返回的结果转换为字节码,交给底层传输。

2、长短链接

长链接和短链接
长链接:通信双方长期保持一个链接状态不断开,比如QQ,当我们登陆QQ的时候,就会链接腾讯的服务器建立一个链接,链接一旦建立就一会断开,除非发生异常
短链接:通信双方不是保持一个长链接状态,比如http协议,请求数据响应完成之后,链接就会断开

3、IOService接口

*实现了对网络通信的客户端和服务端之间的抽象,子接口IOConnector用于描述客户端,子接口IOAcceptor用于描述服务端。*

**作用:**IOService可以管理我们网络通信的客户端和服务端,并且可以管理连接双方的会话session,同样可以添加过滤器。

image-20220717174143094

IoService接口声明了服务端的共有属性和行为;

IoAcceptor接口继承了IoService接口,并添加了服务端特有的接口属性及方法,比如bind()方法,成为典型的服务端接口;

IoConnector接口同样继承了IoService接口,并添加了客户端特有的接口属性及方法,比如connect()方法,成为典型的客户端接口;

AbstractIoService实现了IoService中管理服务的方法,比如getFilterChainBuilder方法—获得过滤器链;

AbstractIoService抽象类继承了AbstractIoService抽象类并实现了IoAcceptor接口,成为了拥有管理服务端实现功能的服务端类;我们常用的NioSocketAcceptor就是它的子类;

AbstractIoConnector抽象类继承了AbstractIoService抽象类并实现了IoConnector接口,成为了拥有管理客户端实现功能的客户端类;我们常用的NioSocketConnector就是它的子类;

4、编码解码

前面提到Mina最主要的工作就是把底层传输的字节码转换为Java对象,提供给应用程序;或者把应用程序返回的结果转换为字节码,交给底层传输。

应用程序 网络
java对象或者基本数据类型 二进制

对象输出到网络---------------------编码---------------------------->需要编码成二进制

网络传入的应用程序<---------------------------解码----------------需要解码成java对象或者基本数据类型


文章作者: superzqbo
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 superzqbo !
评论
  目录