MINA 基本类的描述 :
IoAccepter 相当于网络应用程序中的服务器端
IoConnector 相当于客户端
IoSession 当前客户端到服务器端的一个连接实例
IoHandler 业务处理逻辑
IoFilter 过滤器用于悬接通讯层接口与业务层接口
要编写和运行一个基于Apache MINA 2.0的程序,需要JDK 5.0以上版本,
下面看一个domo:
准备工作:
mina-core-2.0.0-M6.jar
slf4j-api-1.5.2.jar
在官网下载到mina,找出这几个jar,添加到项目,
服务端的代码:
public class MainFrame { private static final int PORT=5469; public static void main(String[] args) throws Exception{ IoAcceptor acceptor=new NioSocketAcceptor(); IoFilter filter=new ProtocolCodecFilter(new TextLineCodecFactory()); acceptor.getFilterChain().addLast("vestigge", filter); acceptor.setHandler(new ServerHandler()); acceptor.bind(new InetSocketAddress(PORT)); System.out.println( "服务器正在监听端口" + PORT +"..."); } }
public class ServerHandler extends IoHandlerAdapter { @Override public void messageReceived(IoSession session, Object message) throws Exception { System.out.println("收到客户端消息:" + message.toString()); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { System.out.println("服务器出现异常:" +cause); } }重写了父类中的messageReceived()和exceptionCaught()
下面在命令行用telnet测试一下,
如果是win 7没有telnet,找到“打开或关闭Windows功能” ,找到telnet客户端和telnet服务端,勾选即可,
在命令行下输入telnet 127.0.0.1 5469
然后再telnet窗口中输入几个字符回车,在控制台可以看到服务器成功收到了消息: