IOServer开源项目介绍及源码分析

IOServer是国人写的一个仿MINA的轻量级服务器框架。最近因为使用MINA的缘故,阅读了IOServer的源码,顺便熟悉了J2SE NIO部分。

 

IOServer的设计目标是手机网游服务器框架。支持TCP协议。

 

这个框架的使用方法和MINA类似;它有一个ProtocolHandler和IOHandler,没有MINA的FilterChain;

 

基本的流程是:创建Config,设定端口、ProtocolHandler和IOHandler;启动服务器。非常方便。

 

IOServer定义了一个NetMessage类,要求所有的业务类都实现该接口。

 

IOServer中最核心的有三个类:IOServiceImpl、IOReadWriteMachine和IOSession;

 

IOServiceImpl会使用NIO轮询serversocket,当服务器端口有新的连接时,接收连接并创建iosession;

 

IOReadWriteMachine使用NIO轮询该Machine负责的客户端socket,当某个socket有数据进来时,调用对应的IOSession来读取解析数据;当某个socket有数据要发送时,调用对应的IOSession的发送方法;

 

IOSession:读取数据,并调用ProtocolHandler和IOHandler处理这些数据;当缓存队列中有数据要发送时,发送它。

 

需要说明:

IOServiceImpl和IOReadWriteMachine的关系:

 

IOServiceImpl只负责处理服务器端口;

 

IOReadWriteMachine由IOReadWriteMachineManager管理;有几个CPU,就有几个IOReadWriteMachine;并将IOSession平均分配在每个CPU上。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值