`

Apache Mina简单实例服务器篇

    博客分类:
  • Mina
阅读更多
准备工作,将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);
		
	}
	
}


分享到:
评论
1 楼 haoguobing 2009-12-25  
hi 您好!我在apache官方网上下载的jar包 到了半天报错,能发个完整的给我吗?谢谢!
haogb@cobellink.com 

相关推荐

    Apache Mina2服务器和客户端简单实例

    在本实例中,我们将探讨如何使用Apache Mina2构建一个简单的服务器和客户端。 首先,让我们了解一下Mina2的核心概念。Mina2基于Java NIO(Non-blocking I/O)库,提供了异步I/O操作,这意味着它不会因为等待数据而...

    Apache Mina简单实例

    在本文中,我们将通过一个简单的实例来探讨如何使用Apache Mina进行网络通信。 首先,Apache Mina的核心是它的事件驱动模型,它允许开发者以非阻塞的方式处理I/O操作。这种模型在处理大量并发连接时效率很高,因为...

    apache mina实例免费下载

    MINA实例通常包含以下部分: 1. **Acceptor**:负责监听和接受新的连接请求。 2. **Session**:表示与客户端的连接,包含了与该连接相关的所有信息,如读写操作、会话属性等。 3. **Filter**:过滤器是MINA处理数据...

    apache-mina例子

    这个例子是关于如何使用Apache Mina实现一个简单的服务端和客户端通信的示例。在这个案例中,`MinaTimeServer`是服务端程序,它负责监听客户端的连接请求,并发送时间信息;而`MinaClient`则是客户端程序,它连接到...

    apache mina 框架实例

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,主要用在开发网络通信应用,如TCP/IP和UDP/IP协议的服务器和客户端。这个框架允许开发者以一种简单、高效的方式处理I/O操作,同时提供了丰富的功能,如多...

    apache mina 学习笔记三(子项目FtpServer)

    Apache MINA FtpServer的核心组件包括服务器引擎、服务器端口、用户会话管理和认证机制。服务器引擎负责监听客户端连接,服务器端口定义了监听的网络地址和端口。用户会话管理负责处理每个客户端的连接,创建独立的...

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

    总结一下,这个"Mina开发实例"涵盖了如何使用Apache Mina创建服务端和客户端,通过Maven构建项目,并实现长连接通信。通过学习和实践这个DEMO,开发者可以掌握Mina的基本用法,为构建高性能、高并发的网络应用打下...

    Apache mina源代码框架解析

    在这个文档中,我们将简要分析Mina 2.0框架的源代码,并通过一个简单的时钟服务器示例来了解其工作原理。 首先,我们来看`MinaTimeServer`类。这个类是Mina服务器的主入口点,它创建了一个`NioSocketAcceptor`实例...

    基于Apache Mina实现的TCP长连接和短连接实例

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在这个实例中,我们将深入探讨如何利用Apache Mina实现TCP的长连接和短连接。 首先,TCP(传输控制协议...

    Apache_Mina.zip_apache_mina

    Apache Mina是一个高性能、异步事件驱动的网络通信框架,主要用在开发网络应用服务器,如FTP、SMTP、NNTP等协议服务器。本教程“深入理解Apache Mina”将帮助我们深入了解这一强大的Java库。 Apache Mina的核心理念...

    Android-基于ApacheMINA进行封装实现AndroidAPP作为服务器客户端进行通讯

    本项目“Android-基于Apache MINA进行封装实现Android APP作为服务器客户端进行通讯”正是利用MINA库来构建Android应用的网络通信功能。 Apache MINA的核心优势在于其非阻塞I/O(Non-blocking I/O)模型,这种模型...

    mina入门实例

    这就是一个基础的Mina入门实例,展示了如何使用Mina进行客户端-服务器间的通信。随着深入学习,你可以了解更多的Mina特性,如心跳机制、多线程处理、会话管理等,以构建更复杂、高效的网络应用。

    apache mina与单例类集合实现网络通讯V1.0

    Apache Mina是一个开源框架,主要用于简化网络应用的开发,它为Java开发者提供了高效的、可扩展的网络通信能力。Mina支持多种协议,如TCP、UDP、HTTP、FTP等,广泛应用于服务器端编程,例如构建代理服务器、聊天应用...

    Apache mina框架入门教程

    Apache Mina 框架是一个强大的网络通信应用框架,它主要针对基于TCP/IP和UDP/IP的协议栈,同时也支持Java对象序列化和其他通信方式。Mina 的核心设计目标是帮助开发者快速构建高性能、高可扩展性的网络应用。它采用...

    ApacheMina入门(完成版)

    接下来,我们将逐步介绍如何使用Apache Mina构建一个简单的TCP服务器: 1. **引入依赖**:首先,在你的项目中添加Apache Mina的依赖库。如果你使用的是Maven,可以在pom.xml文件中添加相应的依赖条目。 2. **创建...

    ApacheMINA传递对象实例[借鉴].pdf

    在这个例子中,`MyRequestObject`和`MyResponseObject`是两个简单的Java对象,它们都实现了`Serializable`接口。这使得这些对象能够被转换为字节流在网络中传输,然后在另一端被还原为原来的对象形式。 序列化是...

    Mina官网例子之时间服务器

    在这个例子中,我们将深入探讨Mina的"时间服务器",它是一个简单的应用,展示了如何使用Mina来创建一个能响应客户端查询当前系统时间的服务器。 **1. Mina基础概念** - **I/O模型**:Mina基于非阻塞I/O(NIO)模型...

    apache mina详细介绍,适合新手入门mina

    下面是一个简单的 TCPServer 实例,用于演示如何使用 Mina 创建一个基本的服务端: ```java public class MyServer { public static void main(String[] args) { IoAcceptor acceptor = new NioSocketAcceptor();...

    这是Apache Mina Server 2.0的中文参考手册,版本为1.0

    本手册中的实践部分将引导你通过创建简单的Mina服务器和客户端来熟悉这些概念。你将学习如何配置和管理会话,设置过滤器链,并实现自定义处理器。同时,你还将了解如何处理各种网络事件,如连接建立、数据接收和断开...

Global site tag (gtag.js) - Google Analytics