基于MINA框架快速开发网络应用程序 1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架...MINA框架的特点有:基于java NIO类库开发;采用非阻塞方式的异步传输;事件驱动;支持批量数据传输;支持TCP、UDP协议;控制反转的设计模式(支持Spring);采用优雅的松耦合架构;可灵活的加载过滤器机制...版本为基础,通过一个范例来演示一下如何使用MINA框架进行开发。...框架来开发的网络应用程序代码结构更清晰;MINA框架完成了底层的线程管理;MINA内置的编码器可以满足大多数用户的需求,省去了开发人员消息编码解码的工作。...具称使用MINA开发服务器程序的性能已经逼近使用 C/C++ 语言开发的网络服务。因此,建议在网络应用程序开发过程中尝试使用MINA框架来提高我们的开发效率和应用程序的执行效率。
这里以mina整合springMVC为例: //springMVC的配置: mina --> ...-- spring升级后此配置已失效 会报错 java.net.SocketAddress"> mina.integration.beans.InetSocketAddressEditor..." /> --> java.net.SocketAddress" value="org.apache.mina.integration.beans.InetSocketAddressEditor...-- 自定义的 字符编码类 org.springboot.mina.codec.ICodeFactory--> mina.codec.WebSocketCodecFactory
acceptor.bind( new InetSocketAddress(PORT) ); Protocol : 利用IoFilter,对消息进行解码和编码,如以下代码通过 MyProtocolEncoder 将java...对象转成byte串,通过MyProtocalDecoder 将byte串恢复成java对象 connector.getFilterChain().addLast("codec";, new ProtocolCodecFilter...这点也正是mina的优势,如果直接用Nio编写,则需要自己编写代码来实现类似Processor的功能。...SocketConnectorConfig cfg = new SocketConnectorConfig(); cfg.setThreadModel(ThreadModel.MANUAL); MINA...Connector Thread :一般作为客户端的请求建立链接线程,实现了接口IoService,维持了一个和服务器端Acceptor的一个链接,线程数量就是创建SocketConnector 的数量 Mina
继续上一篇,这篇主要讲通过mina往B端发送消息。并接受消息,mina是一个网络通信框架,封装了javaNIO。简单易用。网上有非常多关于他的介绍,在此不赘述了。... 以下是自己维护的一个连接池,相同使用并发包中的ConcurrentHashMap实现,他也是线程安全的,代码例如以下: import java.net.InetSocketAddress...;import java.util.HashMap;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import org.apache.commons.logging.Log...org.apache.mina.core.service.IoConnector;import org.apache.mina.core.session.IoSession;import org.apache.mina.filter.codec.ProtocolCodecFilter...但也能够自己定义,比方以长度来推断一条消息是否读取完毕: 编码 import java.nio.charset.Charset;import org.apache.mina.core.buffer.IoBuffer
Mina提供了一个抽象的事件驱动的异步API,通过Java NIO实现各种传输协议如TCP/IP和UDP/IP。...异步框架之上的HTTP服务器 2)FtpServer 一个FTP服务器 3)SSHd 一个Java库,支持SSHH协议 4)Vysper 一个XMPP服务器 Apache Mina 白名单实现方法 http...编写基于Mina的Time服务器 package ch.chiqms.server; import java.io.IOException; import java.net.InetSocketAddress...; import java.nio.charset.Charset; importorg.apache.mina.core.service.IoAcceptor; importorg.apache.mina.core.session.IdleStatus...; import java.util.Calendar; import org.apache.mina.core.service.IoHandlerAdapter; importorg.apache.mina.core.session.IdleStatus
前言: 找了篇文章看了看,nio框架数Mina用的最多!...代码: 服务端: package com.mina; import java.net.InetSocketAddress; import java.nio.charset.Charset; import...org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...; import java.util.Date; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus....*; import java.io.*; public class Client2 { Socket s = null; PrintWriter pw = null; BufferedReader
以一个例子实现了mina客户端和服务端的通讯,现在通过源码来了解建立连接和通讯的过程(基于tcp/ip的实现)。...HelloWorld例子里面实现的是基于TCP/IP协议的通讯,用了mina默认的实现类NioSocketAcceptor和NioSocketConnector。...在构造此类的时候,同时也构造了NioProcessor类 NioSocketAcceptor Java代码 public NioSocketAcceptor() { super(new...代码 当接收到请求时调用accept()方法法处理接收连接,把SocektChannel绑定到NioSession中 Java代码 绑定完成后唤醒NIO的selector开始接收请求 Java代码 selector.wakeup...(); 小结: 通过解析NioSocketAcceptor的构造方法,bind()等代码大概了解了mina服务端初始化相关的一些信息,同时涉及了mina框架相关的IoProcessorIoSessionIoServiceListener
一、mina简介 mina框架是对nio进行的一个封装,可用于java的网络编程,包括TCP/IP和UTP/IP编程,主要屏蔽了网络通信的一些细节,对socket进行封装,并且是用nio的一个实现框架...二、简单的客户端和服务端实例 1、服务端 package mina.demo1; import java.io.IOException; import java.net.InetSocketAddress...; import java.nio.charset.Charset; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.service.IoHandlerAdapter...; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.core.future.ConnectFuture
当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。...MINA的基础架构图: 下面是使用Mina实现TCP的一个小例子: TCPServer.java import java.io.IOException; import java.net.InetSocketAddress...; import java.nio.charset.Charset; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus...控制台将输出: session open for /127.0.0.1:55344 The message received is [hello MINA] Mina实现TCP客户端: MyCient.java...import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.core.service.IoConnector
什么是Mina框架 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。...Mina主页 下载地址 为什么使用Mina? 传统socket:阻塞式通信 每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。...block e.printStackTrace(); } } } 仅需要4不即可完成 在MyserverHandler写消息处理的代码 import java.awt.datatransfer.StringSelection...; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus...; import org.apache.mina.core.session.IoSession; /** * 专门用来处理消息收发的类 * * @author Jay-Tang * */ public
Mina各组件介绍上一篇文章已经系统的介绍了Mina的运行流程,Apache推出的Mina性能上很是高效,上章节我们知道内部有很多的类,各个类之间的依赖也是很多,他们之家都是相互依赖。...本篇就当是Mina的文档了。...因为这个接口中的方法太多,因此通常使用适配器模式IoHandlerAdapter,覆盖你所感兴趣的方法即可IoBuffer========这个接口是对JAVA NIO 的ByteBuffer 的封装,这主要是因为...本节的一些内容如果不清楚,可以参考java.nio.ByteBuffer 接口。...+ IoBuffer order(ByteOrder bo) 这个方法设置是Big Endian 还是Little Endian,JAVA
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina...可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。...学习本文档,需要你已掌握JAVA IO、JAVA NIO、JAVASocket、JAVA 线程及并发库(java.util.concurrent.*)的知识。 1。...MINA 框架简介 当客户首次访问采用MINA编写的程序时,IoAcceptor作为线程运行,负责接受来自客户的请求。...IoHandler 接口中最重要的一个方法是 messageReceived,这个方法的第二个参数是一个 Object 型的消息,总所周知,Object 是所有 Java 对象的基础,那到底谁来决定这个消息到底是什么类型呢
术语表 1.了解Mina&Rake Mina Deployer和自动化工具 RAKE - Ruby Make 2.获得Mina 准备系统 设置Ruby环境和Rails 安装Mina 3.使用Mina 启动...使用Mina,您几乎可以部署所有内容。 Mina的deploy.rb脚本实际上是带有一堆分组任务的RAKE文件。...安装Mina 有几种方法可以下载Mina,其中最简单的方法是使用RubyGems。...运行以下命令下载并安装Mina: gem install mina 使用Mina 在将mina引入项目时,首先需要在项目目录中启动mina。...启动Mina 输入项目目录并运行以下命令: # Enter your project directory: cd ~/project_dir # Initiate Mina mina init
编写目的 本文描述了 JAVA 开发中的有关包、类、接口、方法、实例变量、变量和常量的命名规范,用于规范 JAVA 编程过程中的命名和代码书写规范。 1. ...【强制】相同参数类型,相同业务含义,才可以使用Java的可变参数,避免使用Object。 说明:可变参数必须放置在参数列表的最后。...be cast to java.util.ArrayList. ...说明:Random实例包括java.util.Random 的实例或者 Math.random()的方式。 ...NPE(java.lang.NullPointerException): 空指针异常。 6.
java.io.IOException: Too many open files Failed to open a selector Failed to create a new instance of...org.apache.mina.transport.socket.nio.NioProcessor:null 修改之后: public void init() { NioSocketConnector
mina有自带的解析http数据包的解码类。...可以使用maven配置一下内容获取源码: org.apache.mina mina-http 3.0.0-M2 或者下载mina的源码包,查看org.apache.mina.http.HttpServerDecoder...下面为自己写的解析方法: package com.server; import java.lang.reflect.Method; import java.nio.charset.Charset;...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.CumulativeProtocolDecoder
概述: Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等...),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。...import java.net.InetSocketAddress; import java.net.SocketAddress; import java.util.concurrent.Executors...import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import org.apache.mina.core.buffer.IoBuffer...IoProcessor:这个接口在另一个线程上,负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO 编码中
正常来讲学习大数据之前都要做到以下几点 1.学习基础的编程语言(java,python) 2.掌握入门编程基础(linux操作,数据库操作、git操作) 3.学习大数据里面的各种框架(hadoop、hive...、hbase、spark) 这是正常学习大数据必须要做到的三个步骤,如果有了java基础再去学习基本上已经成功了一半,起码不用为了基础语言的学习而恼火了。...真正的大数据的学习不能仅仅停留在理论的层面上,比如现在经常用到的spark框架目前支持两种语言的开发java或者Scala,现在python语言也能支持了。...有了java基础切入会感觉好很多,毕竟掌握了一门编程语言,计算机语言的感觉有了,切换场景学习而已,没有什么本质的区别。...有了java基础自己找些框架资料,动手做点实际的小项目,就可以了,有些东西没有想象的那么难,就看付出多少功夫了。
Java 软件高级工程师笔试题 【智力部分】(30分) 1. 烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分) 两头同时烧 2. 4,4,10,10,加减乘除,怎么出24点?
参考:http://xinsync.xju.edu.cn/index.php/archives/category/prglang/java/mina 简单介绍:MINA框架是对java的NIO包的一个封装...,简化了NIO程序开发的难度,封装了很多底层的细节,然开发者把精力集中到业务逻辑上来,最近做了一个相关的项目,为了备忘对MINA做一个总结。...ClassNotFoundException { //初始化Acceptor NioSocketAcceptor acceptor = new NioSocketAcceptor(5); java.util.concurrent.Executor...MINA中有个过滤器和处理器的概念,过滤器用来过滤数据,处理器用来处理数据。...对应代码session.write(new ResponseMessage()); public class ResponseMessage{}//这里什么也不做,假设存放处理后的数据 注意:对于一个MINA
领取专属 10元无门槛券
手把手带您无忧上云