深入理解Apache Mina (3)---- 与IoHandler相关的几个类
2009-09-16 00:00:00 来源:WEB开发网在上一篇文档中我们已经了解了IoFilter的用法和其在Mina中的作用,作为Mina数据传输过程中比较重要的组件,IoFilter起到了承上启下的作用----接收数据,编/解码,将数据传递到逻辑层,当数据传递地到逻辑层时,IoFilter的使命就完成了,那么逻辑层的数据由谁来处理呢?如何处理的?这就是本文要讲述的内容----IoHandler。
在介绍IoFilter的时候,文中首先是从IoFilter的结构和其在Mina中的作用谈起的,最后添加了一个使用IoFilter的例子,之前我将其传给几个同学看时,感觉这种方式比较晦涩,应该将例子提到前面,由于时间的关系我不能在对IoFilter的介绍做过多的修改,所以在本篇文档中我就先以一个例子开头,介绍IoHandler,希望这种讲述方式能对你理解Mina有更多的帮助。
好了,言归正传,我们的例子还是以上篇文档中的IoFilter的例子为基础,在此基础上着重突出IoHandler的作用。
Java代码
ServerMain:
public class ServerMain {
public static void main(String[] args) throws IOException {
SocketAddress address = new InetSocketAddress
("localhost", 4321);
IoAcceptor acceptor = new SocketAcceptor();
IoServiceConfig config = acceptor.getDefaultConfig
();
// 配置数据的编解码器
config.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new
ObjectSerializationCodecFactory()));
config.getFilterChain().addLast("logger", new
LoggingFilter());
// 绑定服务器端口
acceptor.bind(address, new ServerHandler());
System.out.println(" 服务器开始在 8000 端口监听
.......");
}
}
ServerHandler:
public class ServerHandler extends IoHandlerAdapter {
// 创建会话
public void sessionOpened(IoSession session) throws
Exception {
System.out.println(" 服务器创建了会话 ");
session.write(" 服务器创建会话时发送的信息 。");
}
// 发送信息
public void messageSent(IoSession session, Object message)
throws Exception {
}
// 接收信息
public void messageReceived(IoSession session, Object
message)
throws Exception {
}
}
ClientMain:
public class ClientMain {
public static void main(String[] args) {
SocketAddress address = new InetSocketAddress
("localhost", 4321);
IoConnector connector = new SocketConnector();
IoServiceConfig config =
connector.getDefaultConfig();
// 配置数据的编解码器
config.getFilterChain().addLast("codec",
new ProtocolCodecFilter(new
ObjectSerializationCodecFactory()));
config.getFilterChain().addLast("logger", new
LoggingFilter());
// 连接到服务器
connector.connect(address, new ClientHandler());
System.out.println(" 已经连接到了服务器 " + address);
}
}
ClientHandler:
public class ClientHandler extends IoHandlerAdapter {
// 发送信息
public void messageSent(IoSession session, Object message)
throws Exception {
}
// 接收信息
public void messageReceived(IoSession session, Object
message)
throws Exception {
System.out.println(" 客户端接收到的服务器的信息是 "
+ message);
}
}
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››深入理解JAR包
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
更多精彩
赞助商链接