您的位置:首页 > 其它

Mina框架实现最简单的服务端(一)

2016-03-31 19:16 218 查看
创建和启动服务端

package minabase.server;

import java.net.InetSocketAddress;
import java.nio.charset.Charset;

import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

/**
* Class Description: 用mina框架启动服务端
* Copyright:   Copyright (c)
*
*/
public class server
{
private static IoAcceptor acceptor = null;

/**
* @param args
*/
public static void main(String[] args)
{
int port = 8100;

try
{
String codecName = "US-ASCII";

//创建一个非阻塞的 server 端的 Socket
acceptor = new NioSocketAcceptor();

//设置读取数据的缓冲区大小
acceptor.getSessionConfig().setReadBufferSize(2048);

//读写通道10秒内无操作进入空闲状态
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 120000);

//acceptor.getFilterChain().addLast("logger", new MyLoggingFilter());

acceptor.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new MyCodecFactory(new MyCodecDecoder(
Charset.forName(codecName)), new MyCodecEncoder(Charset.forName(codecName)))));

//acceptor.getFilterChain().addLast("session", new SessionFilter());

// 绑定逻辑处理器
acceptor.setHandler(new BusinessHandler());

//绑定端口
acceptor.bind(new InetSocketAddress(port));

System.out.println("Server starts successfully ... port: " + port);
}
catch (Exception e)
{
System.out.println("Server starts unsuccessfully with the xception: " + e);
if (!acceptor.isDisposed())
{
acceptor.dispose();
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: