继续上一篇,这篇主要讲通过mina往B端发送消息。并接受消息,mina是一个网络通信框架,封装了javaNIO。简单易用。网上有非常多关于他的介绍,在此不赘述了。...;import org.apache.mina.core.service.IoConnector;import org.apache.mina.core.session.IoSession;import...org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.transport.socket.nio.NioSocketConnector...;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.session.IoSession;import...;import org.apache.mina.core.session.IoSession;import org.apache.mina.filter.codec.ProtocolEncoderAdapter
这点也正是mina的优势,如果直接用Nio编写,则需要自己编写代码来实现类似Processor的功能。...SocketChannel,SessionConfig和IoService.IoHandler的引用) 2.通过IoSession.write 是数据写出的入口 关于线程 ThreadModel 1.x版本的mina...SocketConnectorConfig cfg = new SocketConnectorConfig(); cfg.setThreadModel(ThreadModel.MANUAL); MINA...,实现了接口IoService,维持了一个和服务器端Acceptor的一个链接,线程数量就是创建SocketConnector 的数量 Mina的SocketAcceptor和SocketConnector...客户端Porcessor堵塞测试情况: 1.
以一个例子实现了mina客户端和服务端的通讯,现在通过源码来了解建立连接和通讯的过程(基于tcp/ip的实现)。...服务端通过创建一个NioSocketAcceptor来接受请求,客户端通过创建NioSocketConnector来连接服务端并发送请求,从整体的体系结构来看二者的关系。...IoService是对于服务器端接受连接和客户端发起连接两类行为的一个抽象。IoServer用来执行真正的I/O操作,以及管理I/O会话。两个子接口为IoAcceptor和IoConnector。...IoAcceptor用来接受连接,与客户端进行通讯。IoConnector用来发起连接,与服务端进行通讯。...HelloWorld例子里面实现的是基于TCP/IP协议的通讯,用了mina默认的实现类NioSocketAcceptor和NioSocketConnector。
前言: 找了篇文章看了看,nio框架数Mina用的最多!...org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...System.out.println( "IDLE " + session.getIdleCount( status )); } } 都是官网的代码,没有客户端...,所以用Socket写一个客户端: package com.my.socket; import java.net.*; import java.io.*; public class Client2...pw.println(str); if (str.equals("byebye")) { System.out.println("客户端关闭连接
一、介绍 Apache Mina是一个网络应用框架,简化用户开发高性能、高可扩展性的网络应用程序的难度。...Apache Mina经常用作: 1)NIO框架库 2)客户端/服务器通信框架库 3)网络Socket通信库 Apache Mina还伴随有不少子项目: 1)Asyncweb 构建于Apache Mina....htm 二、Apache Mina下载 下载最新的Mina v2.0.8版 地址见:http://mina.apache.org/mina-project/downloads.html 三、用Mina...1、先决条件 Apache Mina 2.0.8 Core JDK 7 SLF4J+LOGBACK 2、项目依赖包 mina-core-2.0.8.jar slf4j-api-1.6.6.jar 3、...; importorg.apache.mina.core.session.IdleStatus; importorg.apache.mina.core.session.IoSession; public
,mina的主要类如下: 1、IoService接口 用于描述客户端和服务端的接口,子类有IoConnector(客户端)和IoAcceptor(服务端)。...5、IoSession 描述客户端和服务端建立链接的会话,通过该会话,可接收和发送信息。...二、简单的客户端和服务端实例 1、服务端 package mina.demo1; import java.io.IOException; import java.net.InetSocketAddress...); //10、关闭客户端 client.dispose(); } } package mina.demo2; import org.apache.mina.core.service.IoHandlerAdapter...//关闭客户端 client.dispose(); 三、实际项目上的使用 在真实的项目中,经常拿mina与spring结合一起使用。
什么是Mina框架 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。...Mina主页 下载地址 为什么使用Mina? 传统socket:阻塞式通信 每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。...而且NIO的主线程只有一个,不像传统的模型,需要多个线程以应对客户端请求,也减轻了JVM的工作量。...那让我们看看使用mina建的客户端 public class MinaSocket { public static void main(String[] args) {...写的客户端 //客户端使用mina public class MinaClient { public static void main(String[] args) throws Exception{
当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。...IoConnector :相当于客户端,它继承自IoServiece,并进行了扩展。 IoSession :当前客户端到服务器端的一个连接实例。...System.out.println("session closed from " + iosession.getRemoteAddress()); } /** * 收到来自客户端的消息...控制台将输出: session open for /127.0.0.1:55344 The message received is [hello MINA] Mina实现TCP客户端: MyCient.java...; /** * @description:MINA 实现TCP 客户端 * @date:(2015-11-24 下午10:06:43) * @author Administrator * @version
基于MINA框架快速开发网络应用程序 1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架...2.MINA框架的常用类 类NioSocketAcceptor用于创建服务端监听; 类NioSocketConnector用于创建客户端连接; 类IoSession用来保存会话属性和发送消息; 类IoHandlerAdapter...首先定义一个业务逻辑处理器TimeServerHandler,继承自IoHandlerAdapter,实现的功能有:当客户端创建会话时会显示客户端设备的IP和端口;当客户端输入quit时结束会话;客户端输入其它内容时则向客户端发送当前时间...$4 log 信息: OPENED 在客户端输入回车,在客户端可以看到服务端返回当前的时间: Thu Feb 21 16:20:14 CST 2008 服务端输出: 2008-2-21 16:20:14...框架来开发的网络应用程序代码结构更清晰;MINA框架完成了底层的线程管理;MINA内置的编码器可以满足大多数用户的需求,省去了开发人员消息编码解码的工作。
Mina各组件介绍上一篇文章已经系统的介绍了Mina的运行流程,Apache推出的Mina性能上很是高效,上章节我们知道内部有很多的类,各个类之间的依赖也是很多,他们之家都是相互依赖。...本篇就当是Mina的文档了。...一下总结来源于网络:IoService=========这个接口是服务端IoAcceptor、客户端IoConnector 的抽象,提供IO 服务和管理IoSession的功能,它有如下几个常用的方法:... IoService getService() 这个方法返回与当前会话对象关联的IoService 实例.关于TCP连接的关闭:无论在客户端还是服务端...举个例子,我们在客户端调用connect()方法访问Server 端的时候,实际上这就是一个异步执行的方法,也就是调用connect()方法之后立即返回,执行下面的代码,而不管是否连接成功。
IoSession Session可以理解为服务器与客户端的特定连接,该连接由服务器地址、端口以及客户端地址、端口来决定。...Session是服务器端对这种连接的抽象,MINA对其进行了封装,定义了IoSession接口,用来代表客户端与服务器的连接,在服务器端来 指代客户端,实现对客户端的操作、绑定与客户端有关的信息与对象。...通过利用Session的这个概念,编写程序时就可以在服务器端非常方便地区分出是当前 处理的是哪个客户端的请求、维持客户端的状态信息、可以实现客户端之间相互通讯。...IoHandler 从以上MINA框架简图可以看出,对来自客户端数据最终处理是在IoHandler中处理的。...MINA 基本类的描述 在介绍架构之前先认识几个接口: IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例
术语表 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
这里以mina整合springMVC为例: //springMVC的配置: ...-- 配置业务处理类 --> <bean class="org.springboot.<em>mina</em>.codec.WebSocketCodecFactory
),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。...-- mina核心源码 --> org.apache.mina mina-core...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.executor.ExecutorFilter...这一层的典型代表有IOSocketAcceptor和IOSocketChannel,分别对应TCP协议下的服务端和客户端的IOService。...(5.)IoSession:是对底层连接(服务器与客户端的特定连接,该连接由服务器地址、端口以及客户端地址、端口来决定)的封装,一个IoSession对应于一个底层的IO连接(在Mina中UDP也被抽象成了连接
mina有自带的解析http数据包的解码类。...可以使用maven配置一下内容获取源码: org.apache.mina mina-http 3.0.0-M2 或者下载mina的源码包,查看org.apache.mina.http.HttpServerDecoder...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.CumulativeProtocolDecoder...; import org.apache.mina.filter.codec.ProtocolDecoderOutput; import org.apache.mina.filter.codec.textline.LineDelimiter
实际上,MINA2的官方代码里有完整的UDP通信Demo代码,但Demo里客户端是需要依赖MINA2的客户端库的,而如果简单地去掉MINA2的lib依赖,改为标准的Java UDP代码,则服务端和客户端的数据收发都会存在未知多余字节等...实现无需第3方依赖: 通常MINA或Netty的例子里,客户端也都是用的MINA或Netty的客户端lib,本文将直接使用标准UDP代码(便于跨平台实现,比如iOS平台),不依赖于第3方包; [3] 完整可执行源码...Demo的代码逻辑 言归正传,本文要演示的Demo包含两部分,Java UDP客户端和MINA2 UDP服务端,客户端将每隔3秒向服务端发送一条消息,而服务端在收到消息后马上回复一条消息给客户端。...注意点2:服务端的EchoSeverHandler.java文件中,发送数据时的IoBuffer对象组织方法是解决无MINA2客户端依赖的客户端能正确接收MINA2服务端发过去的数据的关键,具体代码如下...还存在独立客户端(非依赖于MINA2客户端)实现时的多余字节和乱码问题。
Mina异步IO使用的Java底层JNI框架,Mina提供服务端和客户端,将我们的业务解耦开发.真正做到高内聚低耦合的思想核心类===IoService :Mina中将服务端和客户端都看成是服务,这里提供统一接口...IoHandler中各个击破====IoService首先我们已服务端NioSocketAcceptor为列,看看我们的服务类之间的结构依赖关系 IoService是服务的鼻祖,无论在我们看来的服务端还是客户端都得继承它...比如Mina框架中用来创建服务端类NioSocketAcceptor。他直接继承了AbstractPollingIoAcceptor。...剩下的事情已经和Mina基本没多大关联了。我们将在这里处理业务逻辑,使用到的就是Handler提供的接收消息和发送消息两个功能。...下面贴出一份总结的图谱帮助我们理解Mina流程我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
实际上,MINA2和Netty4的官方代码里已经有UDP通信的Demo代码,但客户端并不是基于现今流行的移动端(主要是Android和iOS端)来实现,本文将演示用iOS客户端来实现这种跨平台的双向网络通信...NIO框架实现的服务端(包括MINA2和Netty4实现两个方案),客户端每隔5秒向服务端发送消息,而服务端在收到消息后马上回复一条消息给客户端。...iOS客户端运行结果 [2] 服务端运行结果(MINA2方案): ? 服务端运行结果(MINA2方案) [3] 服务端运行结果(Netty4方案): ?...的UDP服务端API接口使用要是Netty4的繁琐,而且MINA2还存在独立客户端(非依赖于MINA2客户端)实现时的多余字节和乱码问题。...iOS客户端的Demo源码 ?
实际上,MINA2和Netty4的官方代码里有UDP通信的Demo代码,但却不存在针对移动端(主要是Android和iOS端)的Demo,本文将演示用�Android客户端来实现这种跨平台的双向网络通信...NIO框架实现的服务端(包括MINA2和Netty4实现两个方案),客户端每隔5秒向服务端发送消息,而服务端在收到消息后马上回复一条消息给客户端。...Android客户端运行结果 [2] 服务端运行结果(MINA2方案): ? 服务端运行结果(MINA2方案) [3] 服务端运行结果(Netty4方案): ?...应该能明显地感觉的出来MINA2的UDP服务端API接口使用要是Netty4的繁琐,而且MINA2还存在独立客户端(非依赖于MINA2客户端)实现时的多余字节和乱码问题。...服务端源码 截图说明:左右是Android客户端源码、右边是服务端(MINA2和Netty4两个方案)。
参考:http://xinsync.xju.edu.cn/index.php/archives/category/prglang/java/mina 简单介绍:MINA框架是对java的NIO包的一个封装...MINA中有个过滤器和处理器的概念,过滤器用来过滤数据,处理器用来处理数据。...而WebEncoder类(实现了ProtocolEncoder接口)是进行编码,在这个类里面加入自己的逻辑把处理后的信息组装发送给客户端(response)。...MINA服务器,这里相当于来了一个requet。...如果这个过滤器为最靠近处理器的那个) ResponseMessage response = (ResponseMessage)message; 参数out:用来输出数据到下一个Filter节点过或者到客户端
领取专属 10元无门槛券
手把手带您无忧上云