看我们群里经常有人在问mina心跳问题,虽然俺是菜鸟可是觉得挺简单的啊,就写了个dome,希望大家多多提意见。

俺做过一段时间网络协议。所以觉得挺简单的吧。哎呀,反正技术就那样了没啥难的。

废话不多说了,附上项目,需要的人down下来跑一下吧。maven构建的,只要jar都down下来了,我想跑就没问题。本来不太习惯写注释,还是特意添加了些。

mina的好处:自己搜了,俺是菜鸟嘛,也没用几次,就觉得mina的异步io(不用为每个连接创建线程),事件驱动(不懂就搜,我也不太懂反正就是好)还挺好的。

说说思路吧:

第一步:将 文件/json/……装入实体,所有你想传输的都可以装入实体(注意大文件不适合,因为内存溢出问题,非要传就该边读边写了。mina也支持udp传输,大文件传输我这就不实现了),实体最好分head和body,

head:放数据包基本信息(比如:一个完整数据包总长度,数据类型(心跳包/数据包/大文件/身份认证等)),

body:放具体的数据类容。

第二步:hander将封装好的实体交由编码工厂(过滤器链),mina有基本的编码器需要自己添加,但通常是不能够满足我们需求的,所以通常自己实现编码器并加入过滤链中。

第三步:解码(顾名思义就是将接收的数据包转换成实体。编码工厂包含编解码,注意解码顺序,先放进去的想取出来,也就是先进先出原则)。

第四步:过滤链跑完后将实体交由hander,自己在根据具体的业务需求完成进一步的操作,到此整个mina的工作就完成了。

我也很少写博客,就快过年了嘛,公司也没啥事,就写个了,写到这才发觉没发上床附近,尻尻尻…………………………………….

只有上传到网盘里,需要的去下吧,有什么不好需要改进的欢迎留言:http://pan.baidu.com/s/1gd5NA5l

本项目实现了:实体、文件、批量传输

使用说明:本项目是maven构建自己看着办,目地是与spring集成所以顺便搞成spring mvc的了,所以运行环境最好是tomcat了,其他web服务器没测过啊,

里面包含j2se的servicemina类可以直接运行,看需要了。某些地方的注释可以取消或添加方便测试心跳了,自己试吧。

over

maven_spring mvc_mina_dome(实体,文件,批传)(spring mina 初学dome)的更多相关文章

  1. Ajax实现文件上传(Spring MVC)

    ## 前端表单 和 JQuery jsp/html代码 使用JQuery <script src="static/js/jquery-3.4.1.js"></sc ...

  2. 分布式文件上传 spring boot + fastdfs + dropzone

    1.首先安装fastDFS 参考链接: https://www.funtl.com/zh/spring-cloud-itoken-codeing/%E5%88%86%E5%B8%83%E5%BC%8F ...

  3. spring mvc文件上传(单个文件上传|多个文件上传)

    单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包    1.所需jar包:                commons-fileupload-1.3.1.jar       ...

  4. 文件上传和下载(可批量上传)——Spring(二)

    针对SpringMVC的文件上传和下载.下载用之前“文件上传和下载——基础(一)”的依然可以,但是上传功能要修改,这是因为springMVC 都为我们封装好成自己的文件对象了,转换的过程就在我们所配置 ...

  5. Spring Boot 文件上传原理

    首先我们要知道什么是Spring Boot,这里简单说一下,Spring Boot可以看作是一个框架中的框架--->集成了各种框架,像security.jpa.data.cloud等等,它无须关 ...

  6. 补习系列(11)-springboot 文件上传原理

    目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...

  7. SpringMVC框架06——文件上传与下载

    1.文件上传 Spring MVC框架的文件上传是基于commons-fileupload组件的文件上传,只不过Spring MVC框架在原有文件上传组件上做了进一步封装,简化了文件上传的代码实现. ...

  8. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  9. SpringMVC(三)-- 视图和视图解析器、数据格式化标签、数据类型转换、SpringMVC处理JSON数据、文件上传

    1.视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法,SpringMVC 也会在内部将 ...

随机推荐

  1. Python3基础 给一起列表起两个名字

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  2. OpenLayers控制瓦片的绽放级别

    先说说这个功能可能使用到的地方,当我们下载的网上瓦片或者矢量数据的第一级或开始几级效果不是很好时,我们就就想让用户看到这些级别的瓦片.实现这个功能比较简单,主要就是修改Openlayers.map的i ...

  3. An error occurred while collecting items to be installed

    安装的插件:Activiti 在Eclipse安装插件时,报以下错误: An error occurred while collecting items to be installed session ...

  4. iOS app 企业内部发布及HTTPS服务器配置

    转自: http://www.cnblogs.com/cocoajin/p/4082488.html iOS企业内部发布及HTTPS服务器配置 一:所需的条件 1. 苹果开发者证书,企业版 299$ ...

  5. I2C总线(异步)

    起始位与停止位的定义: 起始信号:当SCL为高期间,SDA由高到低的跳变:启动信号是一种电平跳变时序信号,而不是一个电平信号. 停止信号:当SCL为高期间,SDA由低到高的跳变:停止信号也是一种电平跳 ...

  6. string 常量池的理解

    1: String a="123"; String b="12"+"3"; String c="1"+"23& ...

  7. 后缀树(suffix tree)

    参考: 从前缀树谈到后缀树 后缀树 Suffix Tree-后缀树 字典树(trie树).后缀树 一.前缀树 简述:又名单词查找树,tries树,一种多路树形结构,常用来操作字符串(但不限于字符串), ...

  8. VMWARE里启动kylin16.0时出现'SMBus Host Controller not enabled'(还未进入系统)

    在Vmware里安装完Ubuntu16.10,启动时出现'SMBus Host Controller not enabled'错误提示,进不到图形界面.网上搜了一下,解决办法是在图形界面里进终端窗口, ...

  9. Excel数据批量导入到数据库2

    1.导包(共3个) 2.jsp <s:form action="ReadExcel.action" method="post" enctype=" ...

  10. javabean连数据库

    1.在src下建包,然后包中建javabean类,代码如下(我的包名为aa) package aa; import java.sql.*; public class bean { private fi ...