准备工作,将mina-core-2.0.0-M2.jar,slf4j-nop-1.5.8.jar,log4j-over-slf4j-1.5.8.jar
遇到java.lang.NoClassDefFoundError:org/slf4j/LoggerFactory错误不是加上log4j-over-slf4j-1.5.8.jar和slf4j-nop-1.5.8.jar就完了的,因为这两个包下都没有org.slf4j.LoggerFacotyr这个方法,那么正确的解决方法是什么呢?那就是将slf4j-api-1.5.8.jar导进来就行了
package com.heming.apache.mina.samplesserver;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
/**
* 自定义的消息处理器,必须实现IoHandlerAdapter类
* @author 何明
*
*/
public class SamplMinaServerHandler extends IoHandlerAdapter{
private int count = 0;
/**
* 当一个客户端连接进入时
*/
@Override
public void sessionOpened(IoSession session) throws Exception {
System.out.println("incoming client: " + session.getRemoteAddress());
}
/**
* 当一个客户端关闭时
*/
@Override
public void sessionClosed(IoSession session) throws Exception {
System.out.println(session.getRemoteAddress() + "is Disconnection");
}
@Override
public void messageReceived(IoSession session, Object message)
throws Exception {
//我们已设定了服务器解析的规则是一行一行读取,这里就可以转为String:
String str = (String)message;
//Write the received data back to remote perr
System.out.println("收到客户端发来的消息为" + " " + str);
//将测试消息会送给客户端
session.write(str + count);
++count;
}
}
package com.heming.apache.mina.samplesserver;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
/**
* 简单Mina Server示例
* @author 何明
*
*/
public class MainServer {
public static void main(String []args)throws Exception{
//创建一个非阻塞的Server端Socket,用NIO
SocketAcceptor acceptor = new NioSocketAcceptor();
//创建接受数据的过滤器
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
//设定这个过滤器将一行一行(/r/n)的读取数据
chain.addLast("myChain", new ProtocolCodecFilter(new TextLineCodecFactory()));
//设定服务器端的消息处理器:一个SamplMinaServerHandler对象
acceptor.setHandler(new SamplMinaServerHandler());
//服务器端绑定的端口
int bindPort = 8899;
//绑定端口,启动服务器
try {
acceptor.bind(new InetSocketAddress(bindPort));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Mina Server is Listing on:=" + bindPort);
}
}
分享到:
相关推荐
在本实例中,我们将探讨如何使用Apache Mina2构建一个简单的服务器和客户端。 首先,让我们了解一下Mina2的核心概念。Mina2基于Java NIO(Non-blocking I/O)库,提供了异步I/O操作,这意味着它不会因为等待数据而...
在本文中,我们将通过一个简单的实例来探讨如何使用Apache Mina进行网络通信。 首先,Apache Mina的核心是它的事件驱动模型,它允许开发者以非阻塞的方式处理I/O操作。这种模型在处理大量并发连接时效率很高,因为...
MINA实例通常包含以下部分: 1. **Acceptor**:负责监听和接受新的连接请求。 2. **Session**:表示与客户端的连接,包含了与该连接相关的所有信息,如读写操作、会话属性等。 3. **Filter**:过滤器是MINA处理数据...
这个例子是关于如何使用Apache Mina实现一个简单的服务端和客户端通信的示例。在这个案例中,`MinaTimeServer`是服务端程序,它负责监听客户端的连接请求,并发送时间信息;而`MinaClient`则是客户端程序,它连接到...
Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,主要用在开发网络通信应用,如TCP/IP和UDP/IP协议的服务器和客户端。这个框架允许开发者以一种简单、高效的方式处理I/O操作,同时提供了丰富的功能,如多...
Apache MINA FtpServer的核心组件包括服务器引擎、服务器端口、用户会话管理和认证机制。服务器引擎负责监听客户端连接,服务器端口定义了监听的网络地址和端口。用户会话管理负责处理每个客户端的连接,创建独立的...
总结一下,这个"Mina开发实例"涵盖了如何使用Apache Mina创建服务端和客户端,通过Maven构建项目,并实现长连接通信。通过学习和实践这个DEMO,开发者可以掌握Mina的基本用法,为构建高性能、高并发的网络应用打下...
在这个文档中,我们将简要分析Mina 2.0框架的源代码,并通过一个简单的时钟服务器示例来了解其工作原理。 首先,我们来看`MinaTimeServer`类。这个类是Mina服务器的主入口点,它创建了一个`NioSocketAcceptor`实例...
Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在这个实例中,我们将深入探讨如何利用Apache Mina实现TCP的长连接和短连接。 首先,TCP(传输控制协议...
Apache Mina是一个高性能、异步事件驱动的网络通信框架,主要用在开发网络应用服务器,如FTP、SMTP、NNTP等协议服务器。本教程“深入理解Apache Mina”将帮助我们深入了解这一强大的Java库。 Apache Mina的核心理念...
本项目“Android-基于Apache MINA进行封装实现Android APP作为服务器客户端进行通讯”正是利用MINA库来构建Android应用的网络通信功能。 Apache MINA的核心优势在于其非阻塞I/O(Non-blocking I/O)模型,这种模型...
这就是一个基础的Mina入门实例,展示了如何使用Mina进行客户端-服务器间的通信。随着深入学习,你可以了解更多的Mina特性,如心跳机制、多线程处理、会话管理等,以构建更复杂、高效的网络应用。
Apache Mina是一个开源框架,主要用于简化网络应用的开发,它为Java开发者提供了高效的、可扩展的网络通信能力。Mina支持多种协议,如TCP、UDP、HTTP、FTP等,广泛应用于服务器端编程,例如构建代理服务器、聊天应用...
Apache Mina 框架是一个强大的网络通信应用框架,它主要针对基于TCP/IP和UDP/IP的协议栈,同时也支持Java对象序列化和其他通信方式。Mina 的核心设计目标是帮助开发者快速构建高性能、高可扩展性的网络应用。它采用...
接下来,我们将逐步介绍如何使用Apache Mina构建一个简单的TCP服务器: 1. **引入依赖**:首先,在你的项目中添加Apache Mina的依赖库。如果你使用的是Maven,可以在pom.xml文件中添加相应的依赖条目。 2. **创建...
在这个例子中,`MyRequestObject`和`MyResponseObject`是两个简单的Java对象,它们都实现了`Serializable`接口。这使得这些对象能够被转换为字节流在网络中传输,然后在另一端被还原为原来的对象形式。 序列化是...
在这个例子中,我们将深入探讨Mina的"时间服务器",它是一个简单的应用,展示了如何使用Mina来创建一个能响应客户端查询当前系统时间的服务器。 **1. Mina基础概念** - **I/O模型**:Mina基于非阻塞I/O(NIO)模型...
下面是一个简单的 TCPServer 实例,用于演示如何使用 Mina 创建一个基本的服务端: ```java public class MyServer { public static void main(String[] args) { IoAcceptor acceptor = new NioSocketAcceptor();...
本手册中的实践部分将引导你通过创建简单的Mina服务器和客户端来熟悉这些概念。你将学习如何配置和管理会话,设置过滤器链,并实现自定义处理器。同时,你还将了解如何处理各种网络事件,如连接建立、数据接收和断开...