- 博客(21)
- 资源 (3)
- 收藏
- 关注
原创 MINA源码分析---学习mina中整数和网络字节的转换处理
主要学习网络字节和计算机上表示的整数之间相互转换以及和小端字节序的转换package org.apache.mina.proxy.utils;import java.io.UnsupportedEncodingException;/** * ByteUtilities.java - Byte manipulation functions. * @since MINA 2.0.0
2014-12-15 20:28:28 1372
原创 MINA源码分析---可移植的操作系统分界符(换行符)
package org.apache.mina.filter.codec.textline;import java.io.ByteArrayOutputStream;import java.io.PrintWriter;/** * A delimiter分界符 which is appended to the end of a text line, such as * CR/LF.
2014-12-10 15:58:25 1252
原创 MINA源码分析---协议编码解码器工厂ProtocolCodecFactory接口
1、具体的解码器,编码器需要自己根据协议实现2、实现协议编码解码器工厂ProtocolCodecFactory接口,在里面主要的工作就是创建解码器,编码器实例,并且返回实例下面贴出三个接口的源码,读者只需要实现这三个接口即可package org.apache.mina.filter.codec;import org.apache.mina.core.session.IoSess
2014-12-07 16:52:50 4224
原创 MINA源码分析---协议编码解码过滤器ProtocolCodecFilter
协议数据 1、对输出的数据进行编码,把消息对象转换成二进制字节流 2、对收到的数据进行解码 过滤器ProtocolCodecFilter,对应的两个最重要的方法分别是1、先对数据进行编码,再发送 filterWrite(NextFilter nextFilter, IoSession session, WriteRequest writeRequest
2014-12-07 16:40:31 7012
原创 MINA源码分析---协议编码输出接口ProtocolEncoderOutput及其实现
下面是协议编码输出接口ProtocolEncoderOutput,所有编码后的数据需要通过接口ProtocolEncoderOutput来写到会话中package org.apache.mina.filter.codec;import org.apache.mina.core.buffer.IoBuffer;import org.apache.mina.core.file.FileR
2014-12-07 16:06:39 2333
原创 MINA源码分析---协议解码输出接口ProtocolDecoderOutput及其实现
接口 ProtocolDecoderOutput/* */package org.apache.mina.filter.codec;import org.apache.mina.core.filterchain.IoFilter.NextFilter;import org.apache.mina.core.session.IoSession;/** * Callback for
2014-12-07 15:54:30 3108 2
原创 MINA源码分析---CumulativeProtocolDecoder协议解码器
一般用户写解码器直接继承 CumulativeProtocolDecoder 类就行啦,实现里面的doDecode方法更详细的解释在源码中在/* */package org.apache.mina.filter.codec;import org.apache.mina.core.buffer.IoBuffer;import org.apache.mina.core.s
2014-12-06 20:41:14 7108 3
原创 MINA源码分析---协议编码器 ProtocolEncoder
里面主要涉及 ProtocolEncoder接口,ProtocolEncoderOutput接口,AbstractProtocolEncoderOutput抽象类下面的源码应该是比较容易理解的package org.apache.mina.filter.codec;import org.apache.mina.core.buffer.IoBuffer;import org.apac
2014-12-06 12:54:01 2185
原创 MINA源码分析---ExecutorFilter线程池过滤器
源码中都加注释啦/* */package org.apache.mina.filter.executor;import java.util.EnumSet;import java.util.concurrent.Executor;import java.util.concurrent.ExecutorService;import java.util.concurrent.Exec
2014-12-05 20:12:39 2992
原创 mina源码分析---IoEvent和IoFilterEvent类及其联系和区别
IoEvent是MINA提供的IO事件或IO请求的类package org.apache.mina.core.session;import org.apache.mina.core.write.WriteRequest;/** * An I/O event or an I/O request that MINA provides. * Most users won't need
2014-12-05 20:06:04 1673
原创 MINA源码分析---处理时间分析过滤器
源码上非常清楚,不懂英语的好好学习package org.apache.mina.filter.statistic;import java.util.HashSet;import java.util.Set;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicLong;
2014-12-04 11:06:34 743
原创 MINA源码分析---心跳包过滤器KeepAliveFilter
1、源码中都加了注释了,用户所要做的就是定义自己的心跳包信息,以及判断拉收的信息是否是心跳包,封装心跳包信息2、实现KeepAliveMessageFactory接口,必要时可以继承KeepAliveFilter类,扩展功能都是可以的,也可以定义自己的心跳过滤器3、接口KeepAliveRequestTimeoutHandler中定义了几个处理获取心跳响应超时的处理,当然也可自己写处理函数
2014-12-04 10:44:37 5201
原创 MINA源码分析---对客户端设置连接间隔时间的过滤器
如果这个IP此次发起连接距离上次发起连接的时间少于规定的时间,则关闭会话,否则建立会话,可以避免同一个远程主机在短时间内发起多个连接下面是源代码,比较简单明了,不作解释了厅/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreem
2014-12-03 22:31:12 1498
原创 MINA源码分析----日志过滤器 LoggingFilter
该类继承自IoFilterAdapter,主要完成两件事1、记录事件2、再把会话事件传递到下一个过滤器中处理,最后交给IoHandler处理/* */package org.apache.mina.filter.logging;import org.apache.mina.core.filterchain.IoFilter;import org.apache.mina.c
2014-12-03 17:24:20 2439
原创 MINA源码分析----怎么设置IP限制的(防火墙)
主要涉及到以下两个类 一个是IP子网类 (IPV4)package org.apache.mina.filter.firewall;import java.net.Inet4Address;import java.net.InetAddress;/** * A IP subnet using the CIDR notation符号. 无类域内路由选择(Cla
2014-12-03 17:19:20 1542
原创 MINA源码学习---mina怎么把字符转换为16进制的
源代码如下,介个就不解释啦package org.apache.mina.core.buffer;/** * Provides utility methods to dump an {@link IoBuffer} into a hex formatted string. * * @author Apache MINA Project */class IoBufferHe
2014-12-03 17:14:21 2289
原创 epoll
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的电平
2014-12-01 21:04:13 556
原创 MINA框架 中JAVA NIO处理主要逻辑的processor线程
/** * The main loop. This is the place in charge to poll负责轮询 the Selector, and to * process the active sessions. It's done in * - handle the newly created sessions * - */
2014-12-01 20:09:32 1473
转载 mina作为客户端断线重连
http://chwshuang.iteye.com/blog/2028951定义:这里讨论的Mina 断线重连是指使用mina作为客户端软件,连接其他提供Socket通讯服务的服务器端。Socket服务器可以是Mina提供的服务器,也可以是C++提供的服务器。 一、断线重连的方式; 1. 在创建Mina客户端时增加一个
2014-12-01 16:26:16 4058 1
转载 JAVA NIO写服务端判断客户端断开连接的方法
不过这个方法有个问题,就是 1、能侦测到客户端主动断开与服务端的连接,但是如果客户端掉线,服务端就接收不到了。。2、如果处于等待状态,就会出问题。比如说客户端的数据还没有准备好发送,这样你就已经关闭了链接。最近学习NIO,一直有个疑问,怎么知道客户端断开了连接.在上网找和试验之后发现下面的方法可以实现这个目的.我们一般会在服务端有个大的W
2014-12-01 15:59:15 13037 3
转载 java nio socketChannel read返回值代表的意思
当socketChannel为阻塞方式时(默认就是阻塞方式)read函数,不会返回0,阻塞方式的socketChannel,若没有数据可读,或者缓冲区满了,就会阻塞,直到满足读的条件,所以一般阻塞方式的read是比较简单的,不过阻塞方式的socketChannel的问题也是显而易见的。这里我结合基于NIO 写ftp服务器调试过程中碰到的问题,总结一下非阻塞场景下的read碰到的问题。注意:这里的场
2014-12-01 15:48:58 11323 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人