`
wangleifire
  • 浏览: 500122 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mina 入门 例子 服务器

    博客分类:
  • mina
阅读更多

mina第一个例子,哈哈是不是很简单,我测试过了,可以跑起来,需要加入以下几个包

mina-core.jar

mina-filter-compression.jar

mina-filter-ssl.jar

slf4j-api-1.1.0.jar

slf4j-simple-1.1.0.jar

 

 

 

 

package demo.mina.echo;

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.mina.common.*;
import org.apache.mina.transport.socket.nio.*;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;

/**
 * HelloServer演示程序
 * @author liudong (
                    http://www.dlog.cn/javayou
                )
 */
public class HelloServer {

    private static final int PORT = 5200;
/**
 * @param args
 * @throws IOException
 */
public static void main(String[] args) throws IOException {
        IoAcceptor acceptor = new SocketAcceptor();       
        IoAcceptorConfig config = new SocketAcceptorConfig();
        DefaultIoFilterChainBuilder chain = config.getFilterChain();
        //使用字符串编码
        chain.addLast("codec",
new ProtocolCodecFilter(new TextLineCodecFactory()));
        //启动HelloServer
        acceptor.bind(new InetSocketAddress(PORT), new HelloHandler(), config);
        System.out.println("HelloServer started on port " + PORT);
    }
}

/**
 * HelloServer的处理逻辑
 * @author liudong
 */
class HelloHandler extends IoHandlerAdapter {
/**
 * 当有异常发生时触发
 */
@Override
    public void exceptionCaught(IoSession ssn, Throwable cause) {
        cause.printStackTrace();
        ssn.close();
    }

/**
 * 有新连接时触发
 */
@Override
public void sessionOpened(IoSession ssn) throws Exception {
    System.out.println("session open for " + ssn.getRemoteAddress());
    }

/**
 * 连接被关闭时触发
 */
@Override
public void sessionClosed(IoSession ssn) throws Exception {
    System.out.println("session closed from " + ssn.getRemoteAddress());
    }

/**
 * 收到来自客户端的消息
 */
public void messageReceived(IoSession ssn, Object msg) throws Exception {   
    String ip = ssn.getRemoteAddress().toString();
        System.out.println("===> Message From " + ip +" : " + msg);   
    ssn.write("Hello " + msg);
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics