apache mina 入门

来源:互联网 发布:微商授权查询系统源码 编辑:程序博客网 时间:2024/06/07 04:46

一、服务器端:

package com.ppt.mina;import java.net.InetSocketAddress;import java.nio.charset.Charset;import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaServer {private static int PORT = 9999;public static void main(String...aa) throws Exception {IoAcceptor acceptor = new NioSocketAcceptor();acceptor.getFilterChain().addLast("logger", new LoggingFilter());acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));acceptor.setHandler(new ServerHandle());acceptor.bind(new InetSocketAddress(PORT));}}

二、服务器端处理类:

package com.ppt.mina;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;public class ServerHandle extends IoHandlerAdapter {@Overridepublic void sessionOpened(IoSession session) throws Exception {System.out.println("server session open");}@Overridepublic void sessionClosed(IoSession session) throws Exception {System.out.println("server session closed");}@Overridepublic void messageReceived(IoSession session, Object message)throws Exception {String str = message.toString();System.out.println(str);session.write("hello client");}}

三、客户端:

package com.ppt.mina;import java.net.InetSocketAddress;import java.nio.charset.Charset;import org.apache.mina.core.future.ConnectFuture;import org.apache.mina.core.session.IoSession;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketConnector;public class MinaClient {private static String ip = "127.0.0.1";private static int port = 9999;public static void main(String[] args) {NioSocketConnector connector = new NioSocketConnector();connector.setConnectTimeoutMillis(10000);connector.getFilterChain().addLast("logger", new LoggingFilter());connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));connector.setHandler(new ClientHandle());IoSession session = null;while(true) {ConnectFuture future = connector.connect(new InetSocketAddress(ip, port));future.awaitUninterruptibly();session = future.getSession();break;}session.getCloseFuture().awaitUninterruptibly();connector.dispose();}}

四、客户端处理类:

package com.ppt.mina;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;public class ClientHandle extends IoHandlerAdapter {@Overridepublic void sessionOpened(IoSession session) throws Exception {System.out.println("client session open");session.write("hello server");}@Overridepublic void sessionClosed(IoSession session) throws Exception {System.out.println("client session closed");}@Overridepublic void messageReceived(IoSession session, Object message)throws Exception {String str = message.toString();System.out.println(str);}}

mina给服务器段发信息,服务器返回一个信息,over。



0 0
原创粉丝点击