<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    DANCE WITH JAVA

    開發出高質量的系統

    常用鏈接

    統計

    積分與排名

    好友之家

    最新評論

    apache mina (異步連接框架)介紹

    一、介紹
    mina(Multipurpose Infrastructure for Network Applications) 是apache的頂級項目之一,用于構造異步連接的各種網絡應用
    二、最簡單的使用實例
    package aicu.mina;
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.nio.charset.Charset;

    import org.apache.mina.common.ByteBuffer;
    import org.apache.mina.common.IoAcceptor;
    import org.apache.mina.common.SimpleByteBufferAllocator;
    import org.apache.mina.filter.LoggingFilter;
    import org.apache.mina.filter.codec.ProtocolCodecFilter;
    import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
    import org.apache.mina.transport.socket.nio.SocketAcceptor;
    import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;

    public class MinaTimeServer {

        
    private static final int PORT = 9123;

        
    public static void main(String[] args) throws IOException {
            
    //設置buffer
            ByteBuffer.setUseDirectBuffers(false);
            ByteBuffer.setAllocator(
    new SimpleByteBufferAllocator());
            
    //定義acceptor
            IoAcceptor acceptor = new SocketAcceptor();
            
    //定義config
            SocketAcceptorConfig cfg = new SocketAcceptorConfig();
            
    //設置config,加入filter
            cfg.getSessionConfig().setReuseAddress( true );
            cfg.getFilterChain().addLast( 
    "logger"new LoggingFilter() );
            cfg.getFilterChain().addLast( 
    "codec"new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));
            
    //加入port handler cfg
            acceptor.bind( new InetSocketAddress(PORT), new TimeServerHandler(), cfg);
            System.out.println(
    "MINA Time server started.");
        }

    }

    對應的handler ,handler的作用是在對應的網事件的處理代碼
    package aicu.mina;
    import java.util.Date;

    import org.apache.mina.common.IdleStatus;
    import org.apache.mina.common.IoHandlerAdapter;
    import org.apache.mina.common.IoSession;
    import org.apache.mina.common.TransportType;
    import org.apache.mina.transport.socket.nio.SocketSessionConfig;

    public class TimeServerHandler extends IoHandlerAdapter {
        
    public void exceptionCaught(IoSession session, Throwable t) throws Exception {
            t.printStackTrace();
            session.close();
        }


        
    public void messageReceived(IoSession session, Object msg) throws Exception {
            String str 
    = msg.toString();
            
    //如果是quit就關閉session退出
            if( str.trim().equalsIgnoreCase("quit") ) {
                session.close();
                
    return;
            }

            
    //否則打印當前日期
            Date date = new Date();
            session.write( date.toString() );
            System.out.println(
    "Message written");
        }


        
    public void sessionCreated(IoSession session) throws Exception {
            System.out.println(
    "Session created");

            
    if( session.getTransportType() == TransportType.SOCKET )
                ((SocketSessionConfig) session.getConfig() ).setReceiveBufferSize( 
    2048 );

            session.setIdleTime( IdleStatus.BOTH_IDLE, 
    10 );
        }

    }
    三、使用方法:
    編譯上邊兩個類(需要加入mina的jar文件),然后運行terminalServer
    開始->運行->cmd進入控制臺
    telnet 127.0.0.1 9123
    輸入hello
    得到當前日期
    輸入quit關閉session。

    posted on 2007-07-09 11:26 dreamstone 閱讀(6411) 評論(6)  編輯  收藏 所屬分類: 利器其它開源框架

    評論

    # re: apache mina (異步連接框架)介紹 2007-07-09 12:54 BeanSoft

    NIO, 好啊, 支持!  回復  更多評論   

    # re: apache mina (異步連接框架)介紹 2007-07-09 13:15 永恒

    介紹的簡單了點,能不能給個詳細的介紹呢,呵呵  回復  更多評論   

    # re: apache mina (異步連接框架)介紹 2007-07-09 14:09 flybean

    Apache MINA (Multipurpose Infrastructure for Network Applications) is a network application framework which helps users develop high performance and high scalability network applications easily.

    哪里看出來是異步?  回復  更多評論   

    # re: apache mina (異步連接框架)介紹 2007-07-09 15:01 BeanSoft

    啊, 不會吧, 自從 JDK 1.4 后, Tomcat 就用 NIO 改寫了, 其它很多廠商也是, 畢竟 NIO 效率要高很多.  回復  更多評論   

    # re: apache mina (異步連接框架)介紹 2007-07-09 16:49 dreamstone

    @flybean
    我也是剛開始接觸,所說的異步是只mina內部,使用它封裝的各種類,就實現了異步。我理解這個框架的作用就是不用自己再去實現異步。利用mina的類來編寫程序,在mina內部實現了異步。這也是它的作用。  回復  更多評論   

    # re: apache mina (異步連接框架)介紹 2009-10-18 17:03 tablechair

    如果我要同步的,mina實現不了?  回復  更多評論   

    主站蜘蛛池模板: 亚洲国产精品免费在线观看| 一本岛v免费不卡一二三区| 国产成人高清精品免费软件| 精品一区二区三区免费视频| 久久久久亚洲Av无码专| 性做久久久久免费观看| 成在人线av无码免费高潮喷水| 亚洲国产精品午夜电影| 亚洲综合色区在线观看| 国产h视频在线观看免费| 一级特黄特色的免费大片视频| 亚洲精品视频在线播放| 亚洲午夜福利精品久久| 色影音免费色资源| 国产精品免费在线播放| 亚洲AV无码精品蜜桃| 亚洲乱码日产一区三区| 毛片免费观看的视频| 久久久久国产精品免费免费不卡 | 亚洲中文字幕久久精品无码A| 自拍偷自拍亚洲精品被多人伦好爽| 国产91色综合久久免费分享| 精品国产污污免费网站入口| 亚洲欧美日韩一区二区三区| 精品亚洲aⅴ在线观看| 亚洲色婷婷综合开心网| 在线观看成人免费视频| 曰批全过程免费视频播放网站| 精品国产污污免费网站入口| 亚洲精品V天堂中文字幕| 亚洲精品不卡视频| 亚洲国产精品无码专区在线观看| 免费在线观看视频a| 午夜视频在线观看免费完整版| 久久成人免费电影| 国产一级在线免费观看| 天堂亚洲免费视频| 精品久久久久亚洲| 亚洲国产综合AV在线观看| 亚洲中文字幕无码av在线| 亚洲综合在线观看视频|