« | September 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | |
| 公告 |
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。 |
Blog信息 |
blog名称: 日志总数:210 评论数量:205 留言数量:-19 访问次数:922837 建立时间:2007年5月10日 |

| |
[Apache Mina]转:Apache Mina使用手记(四) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/21 16:18:57 |
上一篇中,我们介绍了如何在mina中编写自己的日志过滤器,这一篇我们自己实现一个编解器。
实际应用当,很多应用系统应用的都不是标准的web service或XML等,比如象中国移动/联通/电信的短信网关程序,都有自己不同的协议实现,并且都是基于TCP/IP的字节流。Mina自带的编解码器实现了TextLineEncoder和TextLineDecoder,可以进行按行的字符串处理,对于象短信网关程序,就要自己实现编解码过滤器了。
我们定义一个简单的基于TCP/IP字节流的协议,实现在客户端和服务端之间的数据包传输。数据包MyProtocalPack有消息头和消息体组成,消息头包括:length(消息包的总长度,数据类型int),flag(消息包标志位,数据类型byte),消息体content是一个字符串,实际实现的时候按byte流处理。源代码如下:
view plaincopy to clipboardprint?
package com.gftech.mytool.mina;
import com.gftech.util.GFCommon;
publi |
|
[Apache Mina]转:Apache Mina使用手记(三) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/21 15:55:58 |
在上一篇中,通过一个简单的例子,得以管中窥豹,了解了Mina的基本编写方法。在MinaTimeServer演示程序中,我们添加了两个过滤器,一个是日志过滤器LoggingFilter,一个是文本编解码过滤器。前者实现日志信息的自动处理,后者实现对按行读写的文本数据的编码和解码。
其中LoggingFilter默认的是slf4j,它是一个日志Facade,实际并不实现真正的日志处理功能,它在程序运行时自动判断classpath中加载的日志组件,比如:log4j/Logback/JUL等,确定之后调用真正的日志组件实现真正的日志处理操作。这一点对于组件式的程序,很明显是非常灵活的,因为你并不知道用户的实际环境中使用的是log4j还是JUL,或者是Logback等,但是为了实现自动识别,slf4j默认了log配置文件的加载位置,让我觉得十分不便。
我自己的所有系统中,都使用是log4j(他的替代产品Logback已经出来了,据说性能更强),我一般喜欢把所有配置文件包括log4j.properties都放在conf目录下,以便管理。因此,对于slf4j中需要把log4j.prope |
|
[Apache Mina]转:Apache Mina使用手记(二) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/21 15:31:46 |
Mina主要是作为服务器端底层框架来实现数据处理,它的实现很简单,如下例所示:
view plaincopy to clipboardprint?
package com.gftech.mytool.mina;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.charset.Charset;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.sessio |
|
[Apache Mina]转:Apache Mina使用手记(一) 文章收藏, 网上资源, 软件技术, 电脑与网络
李小白 发表于 2009/8/20 17:59:59 |
1.Apache Mina是一个高性能的基础网络构架平台,构建在java NIO的基础上
2.Mina使用了SLF4J做为日志记录器,全称Simple Logging Facade for Java,它是一个日志门面,只负责为客户端提供应用接口,实际的日志记录由Log4j/JUL等日志记录器实现。如下图所示:
3.Mina主要有IoConnector,IoAccepter,IoSession,IoSessionConfig,IoHandler,IoFilter,IoFuture,EventListener等对象组成
4.IoConnector实现客户端的连接功能,IoAccepter实现服务端的接收功能,它们都继承自IoService
5.IoSession为客户端和服务端的一个会话,每一个会话都包括会话的建立,打开,注销等功能
6.IoSession中还包括发送或接收到的数据,以及会话上触发相应事件的侦听器
7.而IoSession的相关配置由IoSessionConfig实现
8.IoHandler为数据处理器,在此对象中可以对接收 |
|
« 1 ›
|