Mina第一个HelloWorld程序:
服务端程序:
Minaserver.java:
1 public class MinaServer { 2 private IoAcceptor ioAcceptor; 3 4 public MinaServer(int port) 5 { 6 ioAcceptor = new NioSocketAcceptor(); 7 try { 8 //设置处理器 9 ioAcceptor.setHandler(new MyHandler()); 10 //绑定端口 11 ioAcceptor.bind(new InetSocketAddress(port)); 12 //规定协议,设定过滤,这里用TextLineCodecFactory文本协议 13 ioAcceptor.getFilterChain().addLast("test", new ProtocolCodecFilter(new TextLineCodecFactory())); 14 } catch (IOException e) { 15 e.printStackTrace(); 16 } 17 } 18 }
MyHandler.java: (服务端接收消息后的业务逻辑处理)
1 public class MyHandler extends IoHandlerAdapter { 2 /**接收到信息后进行逻辑处理*/ 3 @Override 4 public void messageReceived(IoSession session, Object message) 5 throws Exception { 6 String getmessage = message.toString(); 7 System.out.println(getmessage); 8 } 9 }
客户端程序:
MinaClient.java:
1 public class MinaClient { 2 private IoConnector ioConnector; 3 4 public MinaClient(String host, int port) 5 { 6 ioConnector = new NioSocketConnector(); 7 //过滤信息,封装成文本格式输出 8 ioConnector.getFilterChain().addLast("test", new ProtocolCodecFilter(new TextLineCodecFactory())); 9 10 ioConnector.setHandler(new ClientHandler("Hello world!")); 11 ioConnector.connect(new InetSocketAddress(host, port)); 12 } 13 }
ClientHandler.java:
1 public class ClientHandler extends IoHandlerAdapter { 2 //发送给服务端的消息 3 private String sendToServer; 4 5 public ClientHandler(String words) 6 { 7 sendToServer = words; 8 } 9 10 @Override 11 public void sessionOpened(IoSession session) throws Exception { 12 session.write(sendToServer); 13 } 14 }