服务器端启动代码:
//创建一个非阻塞的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包"指的是使用Apache Mina框架创建的一个演示示例,这个示例展示了如何运行一个基本的服务端,能够接收客户端的数据并返回响应。 在Mina框架中,服务端通常会创建一个Acceptor,监听特定的端口...
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-...
7. **minaDemo项目结构**:压缩包中的minaDemo项目可能包含以下组件:主类(启动服务)、配置文件(如XML配置服务)、过滤器实现、编码解码器、以及IoHandler的实现。通过分析这个Demo,我们可以了解到如何实际搭建...
本DEMO将帮助我们深入理解Mina的工作原理及其在实际应用中的使用。 ### 1. Mina 框架的核心概念 - **事件驱动模型**:Mina 采用非阻塞I/O模型,基于Java NIO(New IO)库,使得系统能够处理大量并发连接,提高...
Mina小Demo的可执行特性意味着开发者无需依赖Eclipse或其他IDE,只需将编译后的JAR文件部署在有Java环境的机器上即可运行。而最小化到托盘的功能,使得用户在不使用聊天工具时,可以将其隐藏在系统托盘区域,既节省...
在这个"Mina框架使用demo"中,我们将深入探讨如何利用Mina来实现长连接,以及如何使用其提供的API,如心跳服务和自定义编解码器。 首先,长连接是网络通信中的一个关键概念,它允许客户端和服务器之间的连接保持...
在实际开发中,我们需要将MINA的JAR包添加到项目的类路径中,以便能够使用其中的类和方法。这通常可以通过Maven或Gradle等构建工具来完成,或者直接将JAR包复制到项目的lib目录下。 5. **MINA的应用场景** MINA...
总之,"MinaDemo"是一个展示如何使用Apache MINA框架构建网络应用的实例,涵盖了服务端和客户端的基本操作,以及数据编码解码和事件处理等核心功能。通过深入研究这个示例,开发者可以更好地理解和运用MINA框架,...
常用的JAR包可能包括Mina的核心库、特定协议实现、以及与之相关的第三方依赖。 **Mina框架中常见的JAR包及其作用:** 1. **mina-core.jar**:包含Mina框架的基本组件和核心功能,如I/O处理器、会话管理等。 2. **...
Apache Mina是一个高度可扩展的网络通信框架,主要用于简化服务器端开发。这个“mina聊天Demo”是一个基于...通过分析和理解这个示例,开发者可以更好地掌握Mina的使用方法,以及如何将它应用于实际的网络应用开发中。
在"mina-2.0.19官方相关jar包"中,包含的可能是一系列MINA框架所需的JAR文件,包括核心库、依赖的第三方库以及可能的示例或测试类。这些JAR文件可以帮助开发者快速集成MINA到自己的项目中,进行网络服务的开发。如果...
在"MinaDemo"项目中,主要包含以下几个关键部分: - **Bootstrap**: 定义服务器或客户端的启动配置,包括传输协议、处理器、事件处理器等。 - **Handler**: 处理网络事件的类,如连接建立、数据读写、连接关闭等。 ...
《mina2.0全部jar包详解》 Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发Java网络应用,特别是那些基于TCP和UDP协议的...
在这个"Mina开发实例(服务端、客户端)DEMO"中,我们将深入探讨Mina如何实现长连接通讯。 首先,我们来理解服务端(Server)的实现。在Mina中,服务端通常通过`IoAcceptor`接口来创建,它是监听并接受客户端连接的...
通过mina demo中的TCP示例,你可以学习如何创建服务器监听客户端连接、接收和发送数据,以及处理异常和关闭连接等操作。 UDP(User Datagram Protocol)则是一种无连接的、不可靠的传输协议,它的特点是速度快,但...
**mina即时聊天demo** Mina(Java Multithreaded Application Network Architecture)是一个开源的网络通信框架,由Apache软件基金会开发并维护。它提供了一个高度可扩展的、高性能的、事件驱动的I/O服务架构,广泛...
为了使学习过程更加直观,配合Mina的官方文档,你可以了解到更多关于如何配置和使用这些组件的细节,包括事件驱动模型、过滤器链以及如何处理异步通信等。Mina的API设计得非常灵活,可以方便地适应各种网络通信需求...
2. **mina-integration-beans.jar**:这个jar包提供了与JavaBeans集成的能力,使得可以使用JavaBean属性和方法来配置Mina的组件,简化了Mina的使用。 3. **mina-integration-spring.jar**:对于使用Spring框架的...
**Android使用Mina与服务器通信Demo** Mina(Minimum Asynchronous Network)是一个高度可扩展的、高性能的网络应用开发框架,常用于构建基于TCP和UDP的网络应用,如服务器和客户端。在Android平台上,Mina可以帮助...
在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...