`
zhaoyu2288
  • 浏览: 39443 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mina使用Demo以及最少jar

阅读更多
服务器端启动代码:
//创建一个非阻塞的Server端的Socket,用NIO
		SocketAcceptor acceptor = new NioSocketAcceptor();
		//创建数据过滤器
		DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
		//设定这个过滤器将 一行一行 的读取数据
		chain.addLast("myChain", new ProtocolCodecFilter(new TextLineCodecFactory()));
		//设定服务器端的消息处理器
		acceptor.setHandler(new SamplMainServerHandle());
		//服务器端 端口
		int bindPort = 9988;
		//绑定端口,启动服务器
		acceptor.bind(new InetSocketAddress(bindPort));
		
		System.out.println("Mina Server is Listing on:= " + bindPort);

客户端连接代码:
//Create TCP/IP	connector
		NioSocketConnector client = new NioSocketConnector();
		//创建接受数据的过滤器
		DefaultIoFilterChainBuilder chain = client.getFilterChain();
		//设定这个过滤器将一行一行(/r/n)的读取数据
		chain.addLast("myChin", new ProtocolCodecFilter(new TextLineCodecFactory()));
		//设置客户端的消息处理器
		client.setHandler(new SamplMianClientHandle());
		//set connect timeout
		client.setConnectTimeoutMillis(30000);
		//连接服务器
		ConnectFuture cf = client.connect(new InetSocketAddress("localhost",9988));
		// Wait for the connection attempt to be finished.
		cf.awaitUninterruptibly();
		cf.getSession().getCloseFuture().awaitUninterruptibly();
		client.dispose();

客户端和服务器端的处理器都是继承自IoHandlerAdapter类所以只列出服务器端
public class SamplMainServerHandle extends IoHandlerAdapter{
	
	private Set<IoSession> sessions = new HashSet<IoSession>();
	
	//当一个客户端发送的消息到达时
	@Override
	public void messageReceived(IoSession session, Object message) throws Exception {
		//我们已设定了服务器解析消息的规则是一行一行的读取,这里可以转成String
		String msg = message.toString();
		// Write the received data back to remote peer
		//System.out.println("收到客户端来的消息:"+msg);
		//将消息回送给客户端
		//session.write(msg);
		for(IoSession s : sessions){
			s.write(msg);
		}
	}
	
	//当一个客户端连接关闭时
	@Override
	public void sessionClosed(IoSession session) throws Exception {
		System.out.println("one client Disconnet!");
	}

	//当一个客户端连接进入时
	@Override
	public void sessionOpened(IoSession session) throws Exception {
		sessions.add(session);
		System.out.println("incomming client:"+session.getRemoteAddress());
	}

	
}


以下为Mina运行所需最少的jar包
分享到:
评论

相关推荐

    mina demo mina jar包

    "Mina demo mina jar包"指的是使用Apache Mina框架创建的一个演示示例,这个示例展示了如何运行一个基本的服务端,能够接收客户端的数据并返回响应。 在Mina框架中,服务端通常会创建一个Acceptor,监听特定的端口...

    mina2.0 含11个jar包

    mina-core-2.0.0-M6.jar mina-example-2.0.0-M6.jar mina-filter-codec-netty-2.0.0-M6.jar mina-filter-compression-2.0.0-M6.jar mina-integration-beans-2.0.0-M6.jar mina-integration-jmx-2.0.0-M6.jar mina-...

    Apache Mina 入门Demo

    7. **minaDemo项目结构**:压缩包中的minaDemo项目可能包含以下组件:主类(启动服务)、配置文件(如XML配置服务)、过滤器实现、编码解码器、以及IoHandler的实现。通过分析这个Demo,我们可以了解到如何实际搭建...

    Mina 使用DEMO

    本DEMO将帮助我们深入理解Mina的工作原理及其在实际应用中的使用。 ### 1. Mina 框架的核心概念 - **事件驱动模型**:Mina 采用非阻塞I/O模型,基于Java NIO(New IO)库,使得系统能够处理大量并发连接,提高...

    Mina小Demo聊天工具

    Mina小Demo的可执行特性意味着开发者无需依赖Eclipse或其他IDE,只需将编译后的JAR文件部署在有Java环境的机器上即可运行。而最小化到托盘的功能,使得用户在不使用聊天工具时,可以将其隐藏在系统托盘区域,既节省...

    Mina框架使用demo

    在这个"Mina框架使用demo"中,我们将深入探讨如何利用Mina来实现长连接,以及如何使用其提供的API,如心跳服务和自定义编解码器。 首先,长连接是网络通信中的一个关键概念,它允许客户端和服务器之间的连接保持...

    mina框架介绍以及JAR包

    在实际开发中,我们需要将MINA的JAR包添加到项目的类路径中,以便能够使用其中的类和方法。这通常可以通过Maven或Gradle等构建工具来完成,或者直接将JAR包复制到项目的lib目录下。 5. **MINA的应用场景** MINA...

    minaDemo的实例

    总之,"MinaDemo"是一个展示如何使用Apache MINA框架构建网络应用的实例,涵盖了服务端和客户端的基本操作,以及数据编码解码和事件处理等核心功能。通过深入研究这个示例,开发者可以更好地理解和运用MINA框架,...

    Mina框架+常用JAR包

    常用的JAR包可能包括Mina的核心库、特定协议实现、以及与之相关的第三方依赖。 **Mina框架中常见的JAR包及其作用:** 1. **mina-core.jar**:包含Mina框架的基本组件和核心功能,如I/O处理器、会话管理等。 2. **...

    mina 聊天Demo

    Apache Mina是一个高度可扩展的网络通信框架,主要用于简化服务器端开发。这个“mina聊天Demo”是一个基于...通过分析和理解这个示例,开发者可以更好地掌握Mina的使用方法,以及如何将它应用于实际的网络应用开发中。

    mina-2.0.19官方相关jar包

    在"mina-2.0.19官方相关jar包"中,包含的可能是一系列MINA框架所需的JAR文件,包括核心库、依赖的第三方库以及可能的示例或测试类。这些JAR文件可以帮助开发者快速集成MINA到自己的项目中,进行网络服务的开发。如果...

    Mina通信Demo

    在"MinaDemo"项目中,主要包含以下几个关键部分: - **Bootstrap**: 定义服务器或客户端的启动配置,包括传输协议、处理器、事件处理器等。 - **Handler**: 处理网络事件的类,如连接建立、数据读写、连接关闭等。 ...

    mina2.0全部jar包

    《mina2.0全部jar包详解》 Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发Java网络应用,特别是那些基于TCP和UDP协议的...

    Mina开发实例(服务端、客户端)DEMO

    在这个"Mina开发实例(服务端、客户端)DEMO"中,我们将深入探讨Mina如何实现长连接通讯。 首先,我们来理解服务端(Server)的实现。在Mina中,服务端通常通过`IoAcceptor`接口来创建,它是监听并接受客户端连接的...

    mina demo全套

    通过mina demo中的TCP示例,你可以学习如何创建服务器监听客户端连接、接收和发送数据,以及处理异常和关闭连接等操作。 UDP(User Datagram Protocol)则是一种无连接的、不可靠的传输协议,它的特点是速度快,但...

    mina即时聊天demo

    **mina即时聊天demo** Mina(Java Multithreaded Application Network Architecture)是一个开源的网络通信框架,由Apache软件基金会开发并维护。它提供了一个高度可扩展的、高性能的、事件驱动的I/O服务架构,广泛...

    mina客户端服务器简易Demo

    为了使学习过程更加直观,配合Mina的官方文档,你可以了解到更多关于如何配置和使用这些组件的细节,包括事件驱动模型、过滤器链以及如何处理异步通信等。Mina的API设计得非常灵活,可以方便地适应各种网络通信需求...

    Mina-2.0.7主要jar包

    2. **mina-integration-beans.jar**:这个jar包提供了与JavaBeans集成的能力,使得可以使用JavaBean属性和方法来配置Mina的组件,简化了Mina的使用。 3. **mina-integration-spring.jar**:对于使用Spring框架的...

    Android使用Mina与服务器通信Demo(包括服务端)

    **Android使用Mina与服务器通信Demo** Mina(Minimum Asynchronous Network)是一个高度可扩展的、高性能的网络应用开发框架,常用于构建基于TCP和UDP的网络应用,如服务器和客户端。在Android平台上,Mina可以帮助...

    Apache mina2学习笔记DEMO

    在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...

Global site tag (gtag.js) - Google Analytics