Apache MINA 框架之默认session管理类实现
DefaultSocketSessionConfig 类
extends AbstractSocketSessionConfig extends AbstractIoSessionConfig
implements SocketSessionConfig,IoSessionConfig
protected IoService parent;
private boolean defaultReuseAddress;
private boolean reuseAddress;
//接受数据缓冲区大小
private int receiveBufferSize = -1;
//发送数据缓冲区大小
private int sendBufferSize = -1; private int trafficClass = 0;
private boolean keepAlive = false;
private boolean oobInline = false;
private int soLinger = -1;
private boolean tcpNoDelay = false;
public void init(IoService parent) {
this.parent = parent;
if (parent instanceof SocketAcceptor) {
defaultReuseAddress = true;
} else {
defaultReuseAddress = false;
}
reuseAddress = defaultReuseAddress;
}
doSetAll方法
protected final void doSetAll(IoSessionConfig config) {
if (!(config instanceof SocketSessionConfig)) {
return;
}
if (config instanceof AbstractSocketSessionConfig) {
// Minimize unnecessary system calls by checking all 'propertyChanged' properties.
AbstractSocketSessionConfig cfg = (AbstractSocketSessionConfig) config;
if (cfg.isKeepAliveChanged()) {
setKeepAlive(cfg.isKeepAlive());
}
if (cfg.isOobInlineChanged()) {
setOobInline(cfg.isOobInline());
}
if (cfg.isReceiveBufferSizeChanged()) {
setReceiveBufferSize(cfg.getReceiveBufferSize());
}
if (cfg.isReuseAddressChanged()) {
setReuseAddress(cfg.isReuseAddress());
}
if (cfg.isSendBufferSizeChanged()) {
setSendBufferSize(cfg.getSendBufferSize());
}
if (cfg.isSoLingerChanged()) {
setSoLinger(cfg.getSoLinger());
}
if (cfg.isTcpNoDelayChanged()) {
setTcpNoDelay(cfg.isTcpNoDelay());
}
if (cfg.isTrafficClassChanged() && getTrafficClass() != cfg.getTrafficClass()) {
setTrafficClass(cfg.getTrafficClass());
}
} else {
SocketSessionConfig cfg = (SocketSessionConfig) config;
setKeepAlive(cfg.isKeepAlive());
setOobInline(cfg.isOobInline());
setReceiveBufferSize(cfg.getReceiveBufferSize());
setReuseAddress(cfg.isReuseAddress());
setSendBufferSize(cfg.getSendBufferSize());
setSoLinger(cfg.getSoLinger());
setTcpNoDelay(cfg.isTcpNoDelay());
if (getTrafficClass() != cfg.getTrafficClass()) {
setTrafficClass(cfg.getTrafficClass());
}
}
}
Apache MINA 框架之默认session管理类实现的更多相关文章
- 使用Apache MINA框架搭建服务端
使用MINA框架搭建服务端步骤: 1.定义一个启动服务的类MinaServer,并实现接口ServletContextListener 2.定义一个处理业务逻辑的类MinaServerHandler, ...
- hibernate框架学习之Session管理
Session对象的生命周期 lHibernate中数据库连接最终包装成Session对象,使用Session对象可以对数据库进行操作. lSession对象获取方式: •加载所有配置信息得到Conf ...
- Apache MINA 框架之Handler介绍
IoHandler 具备以下几个功能: sessionCreated sessionOpened sessionClosed sessionIdle exceptionCaught messageRe ...
- apache mina框架
http://blog.csdn.net/ljx8928358/article/details/7759024
- JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表
本文目录: 1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData 2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData ...
- Apache MiNa 实现多人聊天室
Apache MiNa 实现多人聊天室 开发环境: System:Windows JavaSDK:1.6 IDE:eclipse.MyEclipse 6.6 开发依赖库: Jdk1.4+.mina-c ...
- Openfire的启动过程与session管理
说明 本文源码基于Openfire4.0.2. Openfire的启动 Openfire的启动过程非常的简单,通过一个入口初始化lib目录下的openfire.jar包,并启动一个 ...
- Golang的session管理器
对于一些需要对用户进行管理(比如验证操作的权限等)的站点来说,session管理器是必不可少的.下面实现了一个线程安全的简单session管理类.生产环境:golang1.4.2+win7x64gol ...
- Apache Mina 2.x 框架+源码分析
源码下载 http://www.apache.org/dyn/closer.cgi/mina/mina/2.0.9/apache-mina-2.0.9-src.tar.gz 整体架构 核心过程(IoA ...
随机推荐
- 既然HTTP1.1协议里每个连接默认都是持久连接,那么为何当今所有报文都在使用Connetion:Keep-Alive
说白了,如果你发起时有,那么服务器支持,回应时也会有,不支持,也就没有了.所以一般客户端都会默认带着发,服务端返回不返回就是服务端的事了. 1. 支不支持长连接,关键在于服务端是否支持. 如果服务端不 ...
- bzoj 1223: [HNOI2002]Kathy函数 数位DP 高精度
1223: [HNOI2002]Kathy函数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 207 Solved: 90[Submit][Stat ...
- 保留你的dSYM文件
大家编译iPhone程序的时候,都会发现二进制文件的旁边生成了一个.dSYM文件.以前一直不知道这个文件是用来干嘛的,今天才知道这个是symbol file,用来debug用的. 大家可以读读这篇文档 ...
- ios7新特性1-UI变化、UIKit动态行为支持与Text Kit新接口
iOS 7.0新特性1 iOS 7的UI经过了重新设计.另外,iOS7中引入了新的动画系统,便于创建2D和2.5D的游戏.多任务支持提升,点对点通讯以及其他重要的特征使iOS7相对于以往的SDK来说发 ...
- Codeforces Round #205 (Div. 2) : D
思维题,感叹自己的智商不够啊. 思路大概是这样的: 1.排在队伍前面的女生是不用换位置的: 2.女生在队伍中的顺序是不会变的: 3.最后一个女生稳定了则程序结束: 4.每个女生都有个初始位置和最终位置 ...
- Delphi常用排序
1.冒泡排序 Delphi/Pascal code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 procedure BubbleSort(var x:a ...
- bzoj1898
这是yhc大牛矩乘论文上的题目,那里面分析得很清楚了这里就说说我一开始错的地方,我一开始处理每个时刻能通过的邻接矩阵的时候把以不能访问的点i为起点和终点的都标记为0了,实际上只能标记以i为终点的边即可 ...
- Frontend Development
原文链接: https://github.com/dypsilon/frontend-dev-bookmarks Frontend Development Looking for something ...
- @repository注解
Spring的注解形式:@Repository.@Service.@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean. @Repository.@Service.@C ...
- HDU-4272 LianLianKan
http://acm.hdu.edu.cn/showproblem.php?pid=4272 据说是状态压缩,+dfs什么什么的,可我这样也过了,什么算法都是浮云 ,暴力才是王道.我也归类为状态压缩, ...