MinaTimeServer.java
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->packagecom.vista;
importjava.io.IOException;
importjava.net.InetSocketAddress;
importjava.nio.charset.Charset;
importorg.apache.mina.core.service.IoAcceptor;
importorg.apache.mina.core.session.IdleStatus;
importorg.apache.mina.filter.codec.ProtocolCodecFilter;
importorg.apache.mina.filter.codec.textline.TextLineCodecFactory;
importorg.apache.mina.filter.logging.LoggingFilter;
importorg.apache.mina.transport.socket.nio.NioSocketAcceptor;
publicclassMinaTimeServer
{
privatestaticfinalintPORT=6488;
publicstaticvoidmain(String[]args)throwsIOException
{
//监听即将到来的TCP连接
IoAcceptoracceptor=newNioSocketAcceptor();
acceptor.getFilterChain().addLast("logger",newLoggingFilter());
acceptor.getFilterChain().addLast("codec",newProtocolCodecFilter(newTextLineCodecFactory(Charset.forName("UTF-8"))));
acceptor.setHandler(newTimeServerHandler());
acceptor.getSessionConfig().setReadBufferSize(2048);
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,10);
acceptor.bind(newInetSocketAddress(PORT));
System.out.println("服务器启动");
}
}
TimeServerHandler.java
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
packagecom.vista;
importjava.util.Date;
importorg.apache.mina.core.service.IoHandlerAdapter;
importorg.apache.mina.core.session.IdleStatus;
importorg.apache.mina.core.session.IoSession;
publicclassTimeServerHandlerextendsIoHandlerAdapter
{
publicvoidexceptionCaught(IoSessionsession,Throwablecause)throwsException
{
cause.printStackTrace();
}
publicvoidmessageReceived(IoSessionsession,Objectmessage)throwsException
{
StringstrMsg=message.toString();
if(strMsg.trim().equalsIgnoreCase("quit"))
{
session.close();
return;
}
Datedate=newDate();
session.write(date.toString());
System.out.println("Messagewritten");
}
publicvoidsessionIdle(IoSessionsession,IdleStatusstatus)throwsException
{
System.out.println("IDLE"+session.getIdleCount(status));
}
}
测试:
Client Output
|
Server Output
|
user@myhost:~> telnet 127.0.0.1 9123
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hello
Wed Oct 17 23:23:36 EDT 2007
quit
Connection closed by foreign host.
user@myhost:~>
|
MINA Time server started.
Message written...
|
参考资料:1,MINA v2.0 Quick Start Guide
分享到:
相关推荐
Mina2.0快速入门与源码剖析(个人经验文档)
Mina 2.0快速入门与源码解析 很适合初学者使用!!!
java Mina2.0快速入门与源码剖析
自己整理的一些mina学习资料,内含MINA官方教程(中文版).docx,MINA-2.0.0-M4.chm(英文版),Apache_Mina_Server_2.0中文参考手册V1.0.pdf, 还有mina的包
本资源包含两个 pdf 文档,一本根据官方最新文档 (http://mina.apache.org/mina-project/userguide/user-guide-toc.html) 整理的 mina_2.0_user_guide_en.pdf,一个中文翻译的 mina_2.0_user_guide_cn.pdf。...
MINA2.0入门教程(适合刚接触的人)
Mina入门必备手册,详细讲述如何使用mina实现网络通讯。包含3个demo,边学边练。
Apache_Mina2官方教程翻译 Mina 2.0 工作原理以及配置中的注意事项 Mina 状态机介绍 Mina2.0快速入门与源码剖析
丰富的MINA实例介绍,java NIO 学习,mina快速入门宝典
mina学习资料 包含Mina学习笔记 Mina2.0快速入门与源码剖析 Apache_Mina_Server_2.0中文参考手册V1.0 我本人推荐新手可以看Mina学习笔记里面有实例!很适合新手
资源包括: MINA笔记.docx ...Mina2.0快速入门与源码剖析.pdf MINA网络框架和RMI的对比研究.pdf 基于3G网络的移动流媒体服务器的设计与实现.pdf 高性能通信框架及智能主站技术研究.nh MINA类图.doc 等
Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长连接VS短连接 8 二. Mina基础 9 1.IoService接口 10 2.1.1 类结构 11 2.1.2 应用 12 2.IoFilter...
NULL 博文链接:https://bijian1013.iteye.com/blog/2233454
一. Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长连接VS短连接 8 二. Mina基础 9 1.IoService接口 10 2.1.1 类结构 11 2.1.2 应用 12 2....
里面包含mina2.0的api(英文)和mina自学手册,还有mina的开发指导
又是李海峰写的,这厮写得不错,我就是通过它才入门的,顶!
6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...
6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...
6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...