当前位置: 首页>>代码示例>>Java>>正文


Java DemuxingProtocolCodecFactory类代码示例

本文整理汇总了Java中org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory的典型用法代码示例。如果您正苦于以下问题:Java DemuxingProtocolCodecFactory类的具体用法?Java DemuxingProtocolCodecFactory怎么用?Java DemuxingProtocolCodecFactory使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DemuxingProtocolCodecFactory类属于org.apache.mina.filter.codec.demux包,在下文中一共展示了DemuxingProtocolCodecFactory类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: MyServer

import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory; //导入依赖的package包/类
/**
 * Constructor
 */
public MyServer() {
	try {
		acceptor = new NioSocketAcceptor();
		acceptor.getFilterChain().addLast("threadPool",
				new ExecutorFilter(new OrderedThreadPoolExecutor()));// 设置线程池,以支持多线程
		acceptor.getFilterChain().addLast("logger", new LoggingFilter());
		/**
		 * 默认编码器,解码器,遇到\n默认消息结束 当然可以加参数指定解码字符,但解码字符会被截掉 例如:new
		 * TextLineCodecFactory(Charset.forName("UTF-8"),"]","]");
		 * 则会认为"]"为一条消息结束,遇到"]"则截取 比如服务器给你发送的消息是aaaa]aaaa] 会收到两条消息: 1、aaaa
		 * 2、aaaa 后面的"]"则去掉了
		 */
		// acceptor.getFilterChain().addLast(
		// "codec",
		// new ProtocolCodecFilter(new TextLineCodecFactory(Charset
		// .forName("UTF-8"))));// 指定编码过滤器
		DemuxingProtocolCodecFactory pcf = new DemuxingProtocolCodecFactory();
		// 自定义编码器
		pcf.addMessageEncoder(String.class, new MyMessageEncoder());
		// 自定义解码器
		pcf.addMessageDecoder(new MyMessageDecoder());
		ProtocolCodecFilter codec = new ProtocolCodecFilter(pcf);
		acceptor.getFilterChain().addLast("codec", codec);// 指定编码过滤器

		acceptor.setReuseAddress(true);
		acceptor.setHandler(new ServerIoHandler());// 指定业务逻辑处理器
		acceptor.setDefaultLocalAddress(new InetSocketAddress(8888));// 设置端口号
		acceptor.bind();// 启动监听
	} catch (Exception e) {
		e.printStackTrace();
	}
}
 
开发者ID:joezhjiang,项目名称:ics-mina,代码行数:36,代码来源:MyServer.java

示例2: MyClient

import org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory; //导入依赖的package包/类
/**
     * Constructor
     */
    public MyClient() {
        connector = new NioSocketConnector();
        /**
         * 设置信息交换的IoHandler,负责接收和发送信息的处理
         */
        connector.setHandler(new ClientIoHandler());
        //配置过滤器
        DefaultIoFilterChainBuilder chain = connector.getFilterChain();
        //增加日志过滤器
        chain.addLast("logger", new LoggingFilter());
        //增加字符编码过滤器以及设置编码器和解码器
        //chain.addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
        /**
         * 默认编码器,解码器,遇到\n默认消息结束
         * 当然可以加参数指定解码字符,但解码字符会被截掉
         * 例如:new TextLineCodecFactory(Charset.forName("UTF-8"),"]","]");
         * 则会认为"]"为一条消息结束,遇到"]"则截取
         * 比如服务器给你发送的消息是aaaa]aaaa]
         * 会收到两条消息:
         * 1、aaaa
         * 2、aaaa
         * 后面的"]"则去掉了
         */
//        acceptor.getFilterChain().addLast(
//                "codec",
//                new ProtocolCodecFilter(new TextLineCodecFactory(Charset
//                        .forName("UTF-8"))));// 指定编码过滤器
        DemuxingProtocolCodecFactory pcf = new DemuxingProtocolCodecFactory();
        //自定义编码器
        pcf.addMessageEncoder(String.class, new MyMessageEncoder());
        //自定义解码器
        pcf.addMessageDecoder(new MyMessageDecoder());
        ProtocolCodecFilter codec = new ProtocolCodecFilter(pcf);
        chain.addLast("codec",codec);// 指定编码过滤器
        //设置默认连接的地址和端口
        connector.setDefaultRemoteAddress(new InetSocketAddress("localhost", 8888));
        /**
         * 重连机制
         * 如果没有连接,则过30 * 1000毫秒客户端会尝试重新连接服务器
         * 如果连接,则下面的代码不会执行
         */
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                if (null != connector && !connector.isActive()) {
                    try {
                        //尝试连接默认的地址和端口
                        ConnectFuture connFuture = connector.connect();
                        connFuture.awaitUninterruptibly();
                    } catch (Exception e) {
                        // TODO: handle exception
                        e.printStackTrace();
                    }
                }
            }
        }, new Date(), 30 * 1000);
    }
 
开发者ID:joezhjiang,项目名称:ics-mina,代码行数:61,代码来源:MyClient.java


注:本文中的org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。