
Mina
文章平均质量分 76
king_1993
工作两年了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【MinaFile】【五】1.0版本
Mina原创 2016-02-05 12:34:02 · 327 阅读 · 0 评论 -
【MinaFile】【四】编写Mina客户端和处理类
一、客户端Clientpublic class Client { private static final String HOSTNAME = "localhost"; private static final int PORT = 8080; private static final long CONNECT_TIMEOUT = 30*1000L; pr原创 2016-02-02 17:06:47 · 354 阅读 · 0 评论 -
【MinaFile】【三】写自定义编码解码
一、添加常量类Constants/** * 消息自身字节常量类 * @author king_fu * */public class Constants { public static final int TYPE_LEN = 2; public static final int SEQUENCE_LEN = 4; public static final原创 2016-02-01 17:59:49 · 691 阅读 · 0 评论 -
【MinaFile】【一】Spring读取xml的一种方式
这是通过Spring来读取XML文件的分享。首先。目录结构如图。是用Maven来进行Spring的Jar包管理。一、写Maven配置文件去官网,就能看到Spring提供的Maven配置文件。 org.springframework spring-context 4.2.4.RELEASE 把上面的依原创 2016-02-01 10:22:48 · 801 阅读 · 0 评论 -
【MinaFile】【十六】【2.0】总结
MinaFile项目的2.0版本已经开发完。收获还是有很多的。。当前2.0版本的功能有:* 支持多文件上传。* 使用Http方式进行文件传输。* 支持粘包。******************************接下来3.03.0版本加的功能现在我能想到的是1、对文件进行md5验证2、对服务器实施心跳机制最新代码已原创 2016-02-14 18:11:38 · 825 阅读 · 2 评论 -
【MinaFile】【十五】【2.0】多文件处理粘包之客户端接收端
在之前写的客户端接收端太过简单,现在根据服务器的接收端对客户端进行改造。让客户端的解码端也支持粘包上代码/** * 这是客户端对服务器发来的消息进行解码 消息封装在ByteReturnFileMessage实体中。 在解析完之后,调用客户端定义的Handle * handle中的方法messageReceived 在方法中进行处理。 * * @author king_fu *原创 2016-02-14 17:46:21 · 448 阅读 · 0 评论 -
【MinaFile】【十四】【2.0】多文件处理粘包之服务器接收端
1.处理方式我的处理方式是设定一个池子,将每次接收的字节都放入一个池子中,如果达到一个文件所需要的字节,那么就进行保存。可能这个方式对于大文件来说,会很占内存,但是可以等到后面再进行优化。比如三个文件分别是5kb,3kb,14kb,如果接受的数据大于5Kb了,就先将5kb的文件保存起——把池子中的5kb的字节输出到文件中。如果小于5kb,那么继续接受,并放入池子中。实现代码如下。还是类By原创 2016-02-14 10:13:11 · 864 阅读 · 0 评论 -
【MinaFile】【十三】【2.0】关于粘包的处理
我们在Mina服务器对文件进行自定义解码的时候,继承了类CumulativeProtocolDecoder。这个类默认的字节数处理是2048,所以当文件超过了2048个字节之后,服务器解码器就会报错java.nio.BufferUnderflowException 这个异常。以为需要解析的字节为4096KB,但是Mina能够一次性处理的只有2048个字节,所以就会报错。很简单吧?解决办原创 2016-02-06 14:27:33 · 473 阅读 · 0 评论 -
【MinaFile】【十二】【2.0】测试服务器和客户端的交互
在属性文件中配置好上传的文件。1.修改filePath.propertiesserverFilePath=D\:\\Serverfile\\clientFilePath=D\:\\Clientfile\\clientFileName=Constants.java应该能看懂上面的英文吧。。继续下面的2.运行服务器3.运行客户端4.服务器运行图5.客户端运原创 2016-02-05 16:43:34 · 561 阅读 · 0 评论 -
【MinaFile】【九】【2.0】客户端和服务器的handle的实现
服务器和客户端共同继承适配器类IoHandlerAdapter * 当客户端发来消息之后,会先调用自定义的解码器(类)。 * 当解码器解码完成之后,再来这里进行业务处理。 * 处理完之后(也就是调用write()方法之后),会再调用自定义的编码器(类) * 编码器(类)处理完之后,就发给客户端了。1. 服务器端的实现 FileObjectServerHandler/**原创 2016-02-05 15:08:24 · 428 阅读 · 0 评论 -
【MinaFile】【十一】【2.0】实现客户端与服务器交互的自定义编码解码器
1.客户端编码类ByteProtocalEncoder 首先进行的是客户端对消息的编码,然后再发送给客户端。 * 客户端把消息文件实体封装发送给服务器 * 文件名文件路径在handle中处理 * handle从配置文件中获取到对应文件 * 当把消息封装好之后,发送给服务器,服务器对文件解析。 /** * 客户端把消息文件实体封装发送给服务器 * 文件名文件路径在ha原创 2016-02-05 15:38:14 · 565 阅读 · 0 评论 -
【MinaFile】【八】【2.0】项目Model
这一章介绍项目的Model结构。Model包中,有三个类。用于服务器和客户端之间传输的两个类,另外一个为保存配置文件信息的属性实体类1.服务器接受的消息(即客户端发送的消息)ByteFileMessage/** * 文件消息 * 服务器接受的消息(即客户端发送的消息) * @author king_fu * */public class ByteFileMessage im原创 2016-02-05 14:51:00 · 347 阅读 · 0 评论 -
【MinaFile】【十】【2.0】自定义异常
在项目中自定义异常,是个很好的习惯1. 自定义异常类MyRuntimeException/** * 自定义异常 * @author king_fu * */public class MyRuntimeException extends RuntimeException{ /** * 序列化 */ private static final long serialVer原创 2016-02-05 15:17:45 · 385 阅读 · 0 评论 -
【MinaFile】【七】【2.0】客户端以及服务器
这一章写客户端和服务器以及读取配置类文件的内容。1.服务器端:Server/** * 服务器类。开启服务。 * @author king_fu * */public class Server { private static final int SERVER_PORT = 8080; // 是否是自定义的消息。实现接口MessageDecoder。 pr原创 2016-02-05 14:45:40 · 302 阅读 · 0 评论 -
【MinaFile】【六】【2.0】配置文件
这个2.0版本和以前的1.0有重大的变化。1.0当初就相当于一个练手的,或者就是个demo2.0这个版本更加完善。能够达到当初的想要的功能。当初想要做的是进行文件上传。但是不单想要一个文件上传的效果,我想要做的是,能够把文件和其它的消息能够一起发给服务器。服务器处理完文件后,再给客户端一个返回。这一章先说配置文件。pom.xml ,log4j.properties,原创 2016-02-05 14:38:06 · 472 阅读 · 0 评论 -
【MinaFile】【二】编写Mina服务器端
一、修改pom.xml文件。 1.1 因为我们需要把Mina核心和相应的日志jar包放进项目中。 org.apache.mina mina-core 2.0.9 org.apache.mina mina-filter-compression 2.0.4 log4j log4j 1.2.17原创 2016-02-01 14:33:00 · 409 阅读 · 0 评论