在MINA中,IoService接口是两个最重要的接口的父接口:
- IoAcceptor
- IoConnector
要构建一个服务端,你必须选择一个IoAcceptor接口的实现类;而要构建一个客户端,你必须选择一个IoConnector接口的实现类。
基本上来说,该接口的命名是由于accpet()方法,它主要负责在一个客户端和该服务之间创建连接。然后,服务才能接受来自这些连接的请求。有时,我们会称之为“服务端”接口(该名字将在未来的MINA3.0中被使用)。
因为我们需要提供处理多种传输协议(TCP/UDP/...),所以我们就提供了多种该接口的实现,我们已经提供了很全面的覆盖,基本上你不需要自己实现一个新的。
我们有很多这种实现类:
- NioSocketAcceptor:非阻塞的基于TCP协议的IoAcceptor实现
- NioDatagramAcceptor:非阻塞基于UDP协议的IoAcceptor实现
- AprSocketAcceptor:阻塞的基于APR之上的TCP协议的IoAcceptor实现
- VmPipeSocketAcceptor:基于虚拟机管道通信的IoAcceptor实现
只需要挑选一个满足你需求的即可
下面是IoAcceptor及其子类和子接口的类图:
IoConnector
就像我们需要在服务器端实现IoAcceptor一样,我们需要在客户端中实现IoConnector。同样,我们提供了很多实现类:
NioSocketConnector:非阻塞的基于TCP协议的IoConnector实现
NioDatagramConector:非阻塞基于UDP协议的IoConnector实现
AprSocketConnector:阻塞的基于APR之上的TCP协议的IoConnector实现
ProxyConnector:提供代理支持的IoConnector实现
SerialConnector:基于串行传输的IoConnector实现
VmPipeConnector:基于虚拟机管道通信的IoConnector实现
只需要挑选一个满足你需求的即可
下面是IoConnector及其子类和子接口的类图: