Mina使用总结(二)Handler

Handler的基本作用,处理接收到的客户端信息

一个简单的Handler实现如下:

package com.bypay.mina.handler;

import java.util.Date;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;

/**
 * Handler
 * @author 唐延波
 * @date 2015-2-22
 *
 */
public class TimeServerHandler extends IoHandlerAdapter
{
    /**
     * 有异常时执行方法
     */
    @Override
    public void exceptionCaught( IoSession session, Throwable cause ) throws Exception
    {
        cause.printStackTrace();
    }

    /**
     * 接收消息时调用
     */
    @Override
    public void messageReceived( IoSession session, Object message ) throws Exception
    {
        String str = message.toString();
        if( str.trim().equalsIgnoreCase("quit") ) {
            session.close();
            return;
        }

        Date date = new Date();
        //向输出流中写东西
        session.write( date.toString() );
        System.out.println("Message written...");
    }

    @Override
    public void sessionIdle( IoSession session, IdleStatus status ) throws Exception
    {
        System.out.println( "IDLE " + session.getIdleCount( status ));
    }
}
时间: 2024-11-09 01:14:40

Mina使用总结(二)Handler的相关文章

Android中的多线程编程(二)Handler的原理(附源码)

Android中Handler的原理 一.Handler的原理: 1.Handler.Looper.MessageQueue之间的关系. (1).Handler类:向MessageQueue消息队列中发送消息,接收Looper返回来的消息并处理. (2).Looper类: 存储消息队列的容器.负责接收Handler发送的消息,并直接把消息回传给Handler自己. (3).MessageQueue类:存储消息. 2.关系: (1).创建Handler对象的时候,它就会绑定到默认的线程(UI线程)

Android Handler处理机制 ( 二 ) ——Handler,Message,Looper,MessageQueue

Android是消息驱动的,实现消息驱动有几个要素: 消息的表示:Message 消息队列:MessageQueue 消息循环,用于循环取出消息进行处理:Looper 消息处理,消息循环从消息队列中取出消息后要对消息进行处理:Handler 平时我们最常使用的就是Message与Handler了,如果使用过HandlerThread或者自己实现类似HandlerThread的东 西可能还会接触到Looper,而MessageQueue是Looper内部使用的,对于标准的SDK,我们是无法实例化并

Android中Handler 、Thread和Runnable之间的关系

在多线程编程的时候,我们经常会用到Handler,Thread和Runnable这三个类,我们来看看这三个类之间是怎么样的关系? 首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应. 而Runnable是一个接口,Thread是Runnable的子类.可以说,他俩都算一个进程. HandlerThread顾名思义就是可以处理消息循环的线程,他是一个拥有Looper的线程,可以处理消息循环. 与其说H

ExtJS 创建Window实例二

Ext.onReady(function(){ /** * 描述,在window上添加其他的组件,并且对组件进行相关的操作 */ var win=new Ext.Window({ id:'myWin', title:'窗体', height:400, width:"40%", closable:false,//禁用关闭按钮 draggable:false,//紧张拖拽 resizable:false,//固定大小,不允许拉伸 collapsible:true,//可以折叠 bodySt

Handler,Looper,Message,MessageQueue之间关系浅析

一.先看一下使用流程 1.在子线程中使用Handler实例 /***********子线程使用Handler实例*********/ private class LooperThread extends Thread { public Handler handler; @Override public void run() { Looper.prepare(); handler = new Handler() { @Override public void handleMessage(Messa

Android:用Handler实现异步处理功能

Android:用Handler实现异步处理功能 - 51CTO.COM 一.一个问题 有这样一个问题值得我们思考,若把一些类似于下载的功能(既耗时且不一定有结果)写在Activity(主线程)里,会导致Activity阻塞,长时间无响应,直至页面假死(如果5秒钟还没有完成的话,会收到Android系统的一个错误提示 "强制关闭").因此,我们需要把这些耗时的操作放在单独的子线程中操作.这就是Handler的使命.Handler提供异步处理的功能,发送和接收不是同时的(Activity

【转】Handler学习笔记(一)

一.一个问题 有这样一个问题值得我们思考,若把一些类似于下载的功能(既耗时且不一定有结果)写在Activity(主线程)里,会导致Activity阻塞,长时间无响应,直至页面假死(如果5秒钟还没有完成的话,会收到Android系统的一个错误提示 "强制关闭").因此,我们需要把这些耗时的操作放在单独的子线程中操作.这就是Handler的使命.Handler提供异步处理的功能,发送和接收不是同时的(Activity的主线程和线程队列里的线程是不同的线程,并行进行,互不影响). 二.Han

Handler基本概念

Handler基本概念: Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分逐个的在消息队列中将消息取出,然后对消息进行出来,就是发送消息和接收消息不是同步的处理. 这种机制通常用来处理相对耗时比较长的操作. Handler 常用方法: post(Runnable) postAtTime(Runnable,long) postDelayed(Runnable long) sendEmptyMessage(int) sendMes

Android进阶——强大的异步不可或缺的组件Handler详解(一)

引言 从一开始开通博客就计划一周至少写两篇博客,把自己的以前记在本地下的知识点和经验,全部搬到自己的博客里,无论是复杂难易程度只要是自己想写的就搬到这里来,好好总结下形成自己的技术体系,因为有些东西不用就会一时之间想不起来了.ORZ-好了进入正题,对于Java开发来说Thread比较简单,直接匿名创建重写run方法,调用start方法执行即可.或者从Runnable接口继承,但对于Android来说在底层UI操作部分代码没有设计成为线程安全类型,所以需要引入一些同步的机制来实现线程间的通信使其刷