文档章节

Mina初探

诚实可靠小郎君666
 诚实可靠小郎君666
发布于 2017/06/02 15:00
字数 350
阅读 93
收藏 0
点赞 0
评论 0

最近由于工作内容比较空闲,加上对于Java网络框架方面知识的欠缺,决定深入学习NIO框架Mina及Netty;以下是Mina框架最简单的HelloWorld Demo。

MinaServer:
public class MinaServer {
    public static void main(String[] args){
        try {
            //创建一个IoAcceptor实例
            NioSocketAcceptor acceptor = new NioSocketAcceptor();
            //添加解码器
            acceptor.getFilterChain().addLast("codec",new ProtocolCodecFilter(new TextLineCodecFactory()));
            //添加日志
            acceptor.getFilterChain().addLast("logger", new LoggingFilter());
            //指定IoHandler
            acceptor.setHandler(new MinaServerAdapter());
            //绑定端口
            acceptor.bind(new InetSocketAddress(Constants.PORT));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
MinaServerAdapter
public class MinaServerAdapter extends IoHandlerAdapter {
    //sessionCreated:创建时回调
    @Override
    public void sessionCreated(IoSession session) throws Exception {
        System.out.println("sessionCreated");
    }
    //sessionOpened:打开时回调
    @Override
    public void sessionOpened(IoSession session) throws Exception {
        System.out.println("sessionOpened");
    }
    //sessionClosed:关闭时回调
    @Override
    public void sessionClosed(IoSession session) throws Exception {
        System.out.println("sessionClosed");
    }
    //sessionIdle:进入空闲时回调
    @Override
    public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
        System.out.println("sessionIdle");
    }
    //出现异常时回调
    @Override
    public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
        cause.printStackTrace();
        System.out.println("exceptionCaught:"+cause.getMessage());
    }
    /**
     * 接收到消息时回调
     */
    @Override
    public void messageReceived(IoSession session, Object message) throws Exception {
        String str = message.toString();
        System.out.println("Received Message is: " + str);
        if("exit".equals(str)){
            System.out.println("client exit: " + str);
            session.write("client exit");
            session.closeNow();
            return;
        }
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        session.write(format.format(date)+" Received Client Message : "+message);
    }

    @Override
    public void messageSent(IoSession session, Object message) throws Exception {
        System.out.println("messageSent");
    }
}

此时运行MinaServer的main方法,即可启动Mina服务端。在windows系统下启动CMD/Unix系统下启动终端,输入telnet IP PORT链接到Mina服务端,并可向Mina服务端发送消息。

当Mina服务端收到exit字符串时,回话结束。

© 著作权归作者所有

共有 人打赏支持
诚实可靠小郎君666
粉丝 1
博文 9
码字总数 5224
作品 0
昆明
WinForms UI控件初探:Grid Control 、Data Grid、TreeList

Grid Control 、Data Grid、Spreadsheet、Data Editor、TreeList: 超乎你想象!WinForms Grid Control处理100万行数据到底有多快? WinForms界面控件初探:处理速度飞快的WinForms Data Gri...

百mumu
2016/07/13
17
0
MINA项目1.1.7做的项目 更新到MINA 2.0.2,很多东西报错?

MINA 1和mina 2 到底有什么区别呀,哪里也找不到介绍区别的,有没有大家总结的资料呀,给小弟参考下。 我们原来的项目是用MINA 1 做的,现在要升级到mina2,但引进去后,报了好多错误,好多东...

erwei1983
2010/12/24
1K
5
Mina java.nio.BufferUnderflowException 到底怎么回事!?

运行个几分或十几分钟就会报错! 02:32-[com.yiuxn.middleware.collector]-[WARN] EXCEPTION : org.apache.mina.filter.codec.ProtocolDecoderException: java.nio.BufferUnderflowException......

HuaChen
2011/10/25
10.9K
2
NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示

前言 NIO框架的流行,使得开发大并发、高性能的互联网服务端成为可能。这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2、而Netty的主要版本是Netty3和Netty4(Netty5已经被...

JackJiang-
2016/06/24
349
0
解决 Missing artifact mina-core:bundle

原文同步至: Maven 项目中引用了 MINA 的依赖,包如下错误: Missing artifact org.apache.mina:mina-core:bundle:2.0.9 依赖 项目引入的 MINA 依赖如下: org.apache.minamina-core${vers...

waylau
2015/10/29
0
2
android 推送 androidpn 问题

web 服务端错误信息: : RCVD: {ERROR} [2012-08-27 14:21:36,193]

玉良
2012/08/27
2.6K
5
高性能 Java 网络框架 Apache MINA 2.0.16 发布

Apache MINA 2.0.16 发布了,Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架,它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。 更新内容:...

淡漠悠然
2016/11/03
5K
26
servlet中如何获取mina客服端的返回结果?

web用户——————servlet----mina client—————— mina server web用户访问web服务,启动一个servlet线程,在这个servlet线程里我想通过mina client去访问 mina server(mina server...

没羽箭
2011/12/01
1K
5
什么情况下会使用到mina

@FrankHui 你好,想跟你请教个问题:请问一般什么情况下会使用到mina,我是看很多游戏公司都说需要mina经验,我就开始学习mina,我没做过mina的项 目,对此我不懂mina到底作用在哪,度娘说是...

無忌
2013/03/22
6.4K
8
mina 运行4天后抛出如下异常,不知什么原因!

客户端在机房,服务器在公司内网的某台机器上,通过公司lvs设定使客户端可以访问到内网的服务器上。 客户端访问服务器频率约2分钟一次! 程序运行4-5天后出现如下异常! 同样的程序在内网运行...

王全
2009/04/14
6.7K
10

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mybatis收集配置

一、Mybatis取Clob数据 1、Mapper.xml配置 <resultMap type="com.test.User" id="user"> <result column="id" property="id"/> <result column="json_data" property="jsonData" ......

星痕2018
11分钟前
0
0
centos7设置以多用户模式启动

1、旧版本linux系统修改inittab文件,在新版本执行vi /etc/inittab 会有以下提示 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON......

haha360
42分钟前
0
0
OSChina 周日乱弹 —— 红薯,五年间我对你不离不弃

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ andonny :分享周二珂的单曲《孤独她呀》 《孤独她呀》- 周二珂 手机党少年们想听歌,请使劲儿戳(这里) @孤星闵月 :没事干,看一遍红楼梦...

小小编辑
48分钟前
98
8
Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
今天
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
16
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
242
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部