Mina框架学习笔记(一)
来源:互联网 发布:网络教育专业解读 编辑:程序博客网 时间:2024/04/30 09:31
本文是入门篇,先来写一个简单的socket server服务器程序,可以用telnet来连接,当服务器收到客户端的连接时会把服务器上的时间返回给客户。
首先引入四个包:
mina-core-2.0.0.jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
slf4j-log4j12-1.6.1.jar
接着创建一个主服务类:MinaTimeServer
- import java.io.IOException;
- 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.filter.codec.textline.TextLineCodecFactory;
- import org.apache.mina.filter.logging.LoggingFilter;
- import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
- public class MinaTimeServer {
- public static void main(String[] args) throws IOException {
- IoAcceptor acceptor = new NioSocketAcceptor();
- //This filter will log all information such as newly created
- //sessions, messages received, messages sent, session closed
- acceptor.getFilterChain().addLast("logger", new LoggingFilter());
- //This filter will translate binary or protocol specific data into
- //message object and vice versa. We use an existing TextLine
- //factory because it will handle text base message for you (
- //you don't have to write the codec part)
- acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(
- new TextLineCodecFactory(Charset.forName("UTF-8"))));
- acceptor.setHandler(new TimeServerHandler());
- acceptor.getSessionConfig().setReadBufferSize(BUF_SIZE);
- //the first parameter defines what actions to check for when
- //determining if a session is idle, the second parameter defines
- //the length of time in seconds that must occur before a session
- //is deemed to be idle.
- acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
- acceptor.bind(new InetSocketAddress(PORT));
- }
- private static final int PORT = 8181,BUF_SIZE = 2048;
- }
再创建一个handler来管理事件
- package mina;
- import java.util.Date;
- import org.apache.mina.core.service.IoHandlerAdapter;
- import org.apache.mina.core.session.IdleStatus;
- import org.apache.mina.core.session.IoSession;
- public class TimeServerHandler extends IoHandlerAdapter {
- @Override
- public void exceptionCaught(IoSession session, Throwable cause)
- throws Exception {
- cause.printStackTrace();
- }
- @SuppressWarnings("deprecation")
- @Override
- public void messageReceived(IoSession session, Object message)
- throws Exception {
- String str = message.toString();
- System.out.println("Message received:"+str);
- if(str.trim().equalsIgnoreCase("quit")){
- session.close();
- return;
- }
- Date date = new Date();
- session.write(date.toString());
- System.out.println("Message written.");
- }
- @Override
- public void messageSent(IoSession session, Object message) throws Exception {
- super.messageSent(session, message);
- }
- @Override
- public void sessionClosed(IoSession session) throws Exception {
- super.sessionClosed(session);
- }
- @Override
- public void sessionCreated(IoSession session) throws Exception {
- super.sessionCreated(session);
- }
- @Override
- public void sessionIdle(IoSession session, IdleStatus status)
- throws Exception {
- System.out.println("IDLE"+session.getIdleCount(status));
- }
- @Override
- public void sessionOpened(IoSession session) throws Exception {
- // TODO Auto-generated method stub
- super.sessionOpened(session);
- }
- }
运行MinaTimeServer,再用telnet来连接,命令格式如:telnet 127.0.0.1 8181
(第一节结束,第二节待续)
0 0
- Mina框架学习笔记(一)
- Mina框架学习笔记(一)
- Mina框架学习笔记(一)
- Mina框架学习笔记(一)
- MINA框架学习 (一)
- mina框架学习笔记
- MINA框架学习笔记
- mina 学习笔记一
- MINA学习笔记一
- MINA学习笔记一
- Mina框架学习笔记(二)
- Mina框架学习笔记(三)
- Mina框架学习笔记(四)
- Mina框架学习笔记(五)
- Mina框架学习笔记(六)
- Mina框架学习笔记(二)
- Mina框架学习笔记(三)
- Mina框架学习笔记(四)
- 关于Android“This Handler class should be static or leaks might occur”警告的处理方法
- Struts的常用ognl表达式
- VIM中的保存和退出
- 如何在Mac OS X中开启或关闭显示隐藏文件命令
- 关系型数据库表结构的两个设计技巧
- Mina框架学习笔记(一)
- 欢迎使用CSDN-markdown编辑器
- 向热爱装逼的你推荐clojurescript
- 携程景点门票api演示示例分享
- getOutputStream() has already been called for this response 错误异常的处理
- iOS 搜索栏的使用
- Mina框架学习笔记(二)
- 树莓派外接USB摄像头系列三
- Maven搭建hadoop环境之pom.xml基本配置