Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架,通过Javanio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。
Apache MINA是个什么东西?
Apache的Mina(MultipurposeInfrastructureNetworkedApplications)是一个网络应用框架,可以帮助用户开发高性能和高扩展性的网络应用程序;它提供了一个抽象的、事件驱动的异步API,使JavaNIO在各种传输协议(如TCP/IP,UDP/IP协议等)下快速高效开发。
ApacheMina也称为:
NIO框架
网络套接字(networkingsocket)类库
事件驱动的异步API(注意:在JDK7中也新增了异步API)
总之:我们简单理解它是一个封装底层IO操作,提供高级操作API的通讯框架!
Apache MINA的通信模式
由于我是使用的是对象的传送;所以这里只列对象传送
Apache MINA如何使用
1.下载mina压缩包;
2.将里面的jar包导入工程;
3.做完了这两步还不能用,如果我们写好程序启动之后会报以下错误:
SLF4J:Failedtoloadclass"org.slf4j.impl.StaticLoggerBinder".
SLF4J:Seehttp://www.slf4j.org/codes.html#StaticLoggerBinderforfurtherdetails.
Exceptioninthread"main"java.lang.NoClassDefFoundError:org/slf4j/impl/StaticLoggerBinder
atorg.slf4j.LoggerFactory.
atorg.apache.mina.core.service.SimpleIoProcessorPool.
atorg.apache.mina.core.polling.AbstractPollingIoAcceptor.
atorg.apache.mina.transport.socket.nio.NioSocketAcceptor.
atminaserver.MinaServer.main(MinaServer.java:19)
Causedby:java.lang.ClassNotFoundException:org.slf4j.impl.StaticLoggerBinder
atjava.net.URLClassLoader$1.run(URLClassLoader.java:200)
atjava.security.AccessController.doPrivileged(NativeMethod)
atjava.net.URLClassLoader.findClass(URLClassLoader.java:188)
atjava.lang.ClassLoader.loadClass(ClassLoader.java:306)
atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
atjava.lang.ClassLoader.loadClass(ClassLoader.java:251)
atjava.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
...5more
很明显是找不到org/slf4j/impl/StaticLoggerBinder这个类,那么就需要我们再引入一个jar包,所以还需另外下载slf4j-nop-1.5.2.jar引入到工程中才行。
4.当一切工作做好了之后就可以写我们的mina服务器和客户端了