mina 入门 例子 服务器

本文介绍了一个基于Apache MINA框架实现的简单HelloServer示例。该示例通过使用SocketAcceptor创建服务端,并配置了字符串编码过滤器,演示了如何接收客户端消息并返回响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值