`
wangleifire
  • 浏览: 511243 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mina 入门 例子 服务器

    博客分类:
  • mina
阅读更多

mina第一个例子,哈哈是不是很简单,我测试过了,可以跑起来,需要加入以下几个包

mina-core.jar

mina-filter-compression.jar

mina-filter-ssl.jar

slf4j-api-1.1.0.jar

slf4j-simple-1.1.0.jar

 

 

 

 

package demo.mina.echo;

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.mina.common.*;
import org.apache.mina.transport.socket.nio.*;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;

/**
 * HelloServer演示程序
 * @author liudong (
                    http://www.dlog.cn/javayou
                )
 */
public class HelloServer {

    private static final int PORT = 5200;
/**
 * @param args
 * @throws IOException
 */
public static void main(String[] args) throws IOException {
        IoAcceptor acceptor = new SocketAcceptor();       
        IoAcceptorConfig config = new SocketAcceptorConfig();
        DefaultIoFilterChainBuilder chain = config.getFilterChain();
        //使用字符串编码
        chain.addLast("codec",
new ProtocolCodecFilter(new TextLineCodecFactory()));
        //启动HelloServer
        acceptor.bind(new InetSocketAddress(PORT), new HelloHandler(), config);
        System.out.println("HelloServer started on port " + PORT);
    }
}

/**
 * HelloServer的处理逻辑
 * @author liudong
 */
class HelloHandler extends IoHandlerAdapter {
/**
 * 当有异常发生时触发
 */
@Override
    public void exceptionCaught(IoSession ssn, Throwable cause) {
        cause.printStackTrace();
        ssn.close();
    }

/**
 * 有新连接时触发
 */
@Override
public void sessionOpened(IoSession ssn) throws Exception {
    System.out.println("session open for " + ssn.getRemoteAddress());
    }

/**
 * 连接被关闭时触发
 */
@Override
public void sessionClosed(IoSession ssn) throws Exception {
    System.out.println("session closed from " + ssn.getRemoteAddress());
    }

/**
 * 收到来自客户端的消息
 */
public void messageReceived(IoSession ssn, Object msg) throws Exception {   
    String ip = ssn.getRemoteAddress().toString();
        System.out.println("===> Message From " + ip +" : " + msg);   
    ssn.write("Hello " + msg);
    }
}

分享到:
评论

相关推荐

    mina入门例子

    本入门例子将带你了解如何使用MINA进行基本的网络通信应用开发。 首先,MINA的核心概念包括`Session`、`Filter`和`Handler`。`Session`代表一个网络连接,它是数据传输的通道;`Filter`是处理`Session`中数据的...

    Mina入门:mina版之HelloWorld

    **Mina入门:Mina版之HelloWorld** Apache Mina是一个开源项目,它提供了一个高度模块化、高性能的网络通信框架。Mina旨在简化网络应用的开发,支持多种传输协议,如TCP、UDP、HTTP、FTP等。在这个“Mina入门:Mina...

    Apache Mina入门

    ### Apache Mina 入门详解 #### 一、Mina简介与应用场景 ##### Mina概述 Mina(**Mini Network Application**)是一个简洁且易于使用的Java网络应用开发框架,主要针对TCP/IP通信进行优化设计。它能够帮助开发者...

    Apache mina框架入门教程

    在这个例子中,我们使用`NioSocketAcceptor`作为IoService的实现,它对应于TCP服务器。通过配置`IoSessionConfig`,我们可以设置读取缓冲区大小和空闲时间,确保在无操作时能正确处理空闲连接。 ```java public ...

    Mina 2.0快速入门与源码解析

    为了帮助读者快速理解如何使用 Mina 2.0 开发简单的网络服务,下面提供了一个基于时间服务器的例子——`MinaTimeServer.java`。 ```java package com.vista; import java.io.IOException; import java.net....

    mina入门程序

    **Mina入门程序详解** Apache Mina是一个高度可扩展的网络通信框架,广泛应用于Java开发中,特别是构建高性能、高并发的TCP/IP和UDP服务。本篇将带你深入理解Mina的基本概念,以及如何通过一个简单的入门程序来熟悉...

    netty入门例子--(不是翻译官方文档)

    这个“netty入门例子”旨在帮助初学者理解Netty的基本用法和特性,而不是简单地翻译官方文档,它提供了几个开发模板,以便于深入理解Netty中的消息异步通信机制和TCP通信的封装。 首先,Netty的核心是它的异步模型...

    Mina2.0完全剖析,完全自学手册

    #### 一、Mina入门 Mina是Apache提供的一个网络应用框架,旨在帮助开发者构建高性能及高度可扩展性的网络应用程序。通过提供一个抽象的、事件驱动的异步API,Mina简化了Java NIO的使用,并支持多种传输协议,如TCP/...

    dubbo源码解析2

    1. **Java语言编程知识**:掌握Java编程的基础是非常重要的,推荐《Java编程思想》这本书作为入门书籍,了解Java的基本语法、面向对象编程等概念。 2. **Spring框架开发及应用**:Spring框架是Java开发中非常重要的...

Global site tag (gtag.js) - Google Analytics