`
lapulande
  • 浏览: 218803 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个基于MINA框架应用的最简单例子

    博客分类:
  • Mina
阅读更多

直接上代码。关于原理和主要的API以后在说。先能跑通了在说。

 

主要的包:mina-core-2.0.0.jar【到官网上下载完整项目包里面还有文档和依赖包】,jcl-over-slf4j-1.5.11.jar,slf4j-api-1.5.11.jar,slf4j-nop-1.5.11.jar这三个是mina使用的日志包。前面二个mina项目包里有。最后一个到官网上下吧。

 

服务器类:

public class MinaServer {
	private static final int PORT = 22222;// 定义监听端口
	public static void main(String[] args) throws IOException {
		//创建一个非阻塞的Server端socket,用NIO
		IoAcceptor acceptor = new NioSocketAcceptor();
		//创建接受数据的过滤器
		DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
		//设定这个过滤器将一行一行的读取数据
		chain.addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory()));// 指定编码过滤器
		// 指定业务逻辑处理器
		acceptor.setHandler(new Handler());
		// 设置端口号
		acceptor.setDefaultLocalAddress(new InetSocketAddress(PORT));
		acceptor.bind(); //启动监听
		System.out.println("Mina Server is Listen on:"+PORT);
	}
}

 处理类。用来处理请求连接的。

public class Handler extends IoHandlerAdapter {
	//当一个客户端连接进入时
	@Override
	public void sessionOpened(IoSession session)throws Exception {
		System.out.println("incoming client:"+session.getRemoteAddress());
	}
	//当客户端发送消息到达时
	@Override
	public void messageReceived(IoSession session, Object message)throws Exception {
		String s = message.toString();
		System.out.println("client send message is:"+s);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd mm:hh:ss");
		Date date = new Date();
		session.write(sdf.format(date));// 返回当前时间的字符串
		System.out.println("message written...");
	}
	//当一个客户端连接关闭时
	@Override
	public void sessionClosed(IoSession session)throws Exception {
		System.out.println("one client closed");
	}
}

 服务端就完事儿了。运行MainServer就行了。

 

然后是测试下。在命令行运行“telnet 127.0.0.1 22222”,当服务器端出现“incoming client:/127.0.0.1:2333”,表示你连接成功了

然后你随便写个字符,然后回车。如果可以看到由服务器返回来的时间串就OK了。

 

时间紧。写的简单了。有问题或疑问可以留言。

分享到:
评论
1 楼 weis2007 2014-03-27  
at MinaTestServer.main(MinaTestServer.java:16)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.MarkerIgnoringBase

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包9

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包101

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    Java资源包01

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics