继续上一篇,这篇主要讲通过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的功能。...SocketConnectorConfig cfg = new SocketConnectorConfig(); cfg.setThreadModel(ThreadModel.MANUAL); MINA...SocketConnector 的数量 Mina的SocketAcceptor和SocketConnector均是继承了BaseIoService,是对IoService的两种不同的实现 I/O processor...Thread :作为I/O真正处理的线程,存在于服务器端和客户端,用来处理I/O的读写操作,线程的数量是可以配置的,默认最大数量是CPU个数+1 服务器端:在创建SocketAcceptor的时候指定...测试结果 4个session.wirte变成了并行处理,服务器端同时收到了5条消息
以一个例子实现了mina客户端和服务端的通讯,现在通过源码来了解建立连接和通讯的过程(基于tcp/ip的实现)。...IoService是对于服务器端接受连接和客户端发起连接两类行为的一个抽象。IoServer用来执行真正的I/O操作,以及管理I/O会话。两个子接口为IoAcceptor和IoConnector。...HelloWorld例子里面实现的是基于TCP/IP协议的通讯,用了mina默认的实现类NioSocketAcceptor和NioSocketConnector。...代码 绑定完成后唤醒NIO的selector开始接收请求 Java代码 selector.wakeup(); 小结: 通过解析NioSocketAcceptor的构造方法,bind()等代码大概了解了mina...服务端初始化相关的一些信息,同时涉及了mina框架相关的IoProcessorIoSessionIoServiceListener等,在下一篇文章中会再做进一步的分析接收到最终的处理请求的过程。
前言: 找了篇文章看了看,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 org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.filter.logging.LoggingFilter...; import java.util.Date; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus
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...编写基于Mina的Time服务器 package ch.chiqms.server; import java.io.IOException; import java.net.InetSocketAddress...IOException e) { e.printStackTrace(); } } } 4、编写...IDLE"+session.getIdleCount(status)); } } 5、运行MinaTimeServer 在命令行输入telnet 127.0.0.1 9123 服务器端的输出也可以看到
一、mina简介 mina框架是对nio进行的一个封装,可用于java的网络编程,包括TCP/IP和UTP/IP编程,主要屏蔽了网络通信的一些细节,对socket进行封装,并且是用nio的一个实现框架...; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...; 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.filter.codec.textline.LineDelimiter...; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus
什么是Mina框架 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。...Mina主页 下载地址 为什么使用Mina? 传统socket:阻塞式通信 每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。...; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession; /**...写的客户端 //客户端使用mina public class MinaClient { public static void main(String[] args) throws Exception{...(inputContent=reader.readLine()).equals("bye")){ ioSession.write(inputContent); } } } 这是简单使用mina
当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。...IoAccepter :相当于网络应用程序中的服务器端,它继承自IoServiece,并进行了扩展。 IoConnector :相当于客户端,它继承自IoServiece,并进行了扩展。...IoSession :当前客户端到服务器端的一个连接实例。 IoHandler :这个接口负责编写业务逻辑,也就是接收、发送数据的地方。这也是实际开发过程中需要用户自己编写的部分代码。...MINA的基础架构图: 下面是使用Mina实现TCP的一个小例子: TCPServer.java import java.io.IOException; import java.net.InetSocketAddress...控制台将输出: session open for /127.0.0.1:55344 The message received is [hello MINA] Mina实现TCP客户端: MyCient.java
基于MINA框架快速开发网络应用程序 1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架...MINA框架当前稳定版本是1.1.6,最新的2.0版本目前已经发布了M1版本。...版本为基础,通过一个范例来演示一下如何使用MINA框架进行开发。...框架来开发的网络应用程序代码结构更清晰;MINA框架完成了底层的线程管理;MINA内置的编码器可以满足大多数用户的需求,省去了开发人员消息编码解码的工作。...具称使用MINA开发服务器程序的性能已经逼近使用 C/C++ 语言开发的网络服务。因此,建议在网络应用程序开发过程中尝试使用MINA框架来提高我们的开发效率和应用程序的执行效率。
MINA 框架简介 当客户首次访问采用MINA编写的程序时,IoAcceptor作为线程运行,负责接受来自客户的请求。...Session是服务器端对这种连接的抽象,MINA对其进行了封装,定义了IoSession接口,用来代表客户端与服务器的连接,在服务器端来 指代客户端,实现对客户端的操作、绑定与客户端有关的信息与对象。...通过利用Session的这个概念,编写程序时就可以在服务器端非常方便地区分出是当前 处理的是哪个客户端的请求、维持客户端的状态信息、可以实现客户端之间相互通讯。...MINA 基本类的描述 在介绍架构之前先认识几个接口: IoAccepter 相当于网络应用程序中的服务器端 IoConnector 相当于客户端 IoSession 当前客户端到服务器端的一个连接实例...编写 Handler 类就是使用 MINA 开发网络应用程序的重心所在,相当于 MINA 已经帮你处理了所有的通讯方面的细节问题。
Mina各组件介绍上一篇文章已经系统的介绍了Mina的运行流程,Apache推出的Mina性能上很是高效,上章节我们知道内部有很多的类,各个类之间的依赖也是很多,他们之家都是相互依赖。...本篇就当是Mina的文档了。...boolean useReadOperation) 这个方法设置IoSession 的read()方法是否可用,默认是falseIoHandler=========这个接口是你编写业务逻辑的地方...void exceptionCaught(IoSession session, Throwable cause) 这个方法在你的程序、Mina...CharsetEncoder encoder)可以方便的以指定的编码方式存储字符串、InputStream asInputStream()方法从IoBuffer 剩余的未读的数据中转为输入流等IoFuture========在Mina
术语表 1.了解Mina&Rake Mina Deployer和自动化工具 RAKE - Ruby Make 2.获得Mina 准备系统 设置Ruby环境和Rails 安装Mina 3.使用Mina 启动...一切都是用Ruby编写的,而不需要处理其他类型的配置,您可以不需要熟悉任何你再也不会使用的新东西。...Rake的这种结构可以称为特定于域的语言,用Ruby编写,从而在边界内以某种方式定义和设置所有内容。 它被称为构建工具,因为如前面所述,它的操作通常与构造某些东西(例如库,应用程序等)有关。...安装Mina 有几种方法可以下载Mina,其中最简单的方法是使用RubyGems。...运行以下命令下载并安装Mina: gem install mina 使用Mina 在将mina引入项目时,首先需要在项目目录中启动mina。
这里以mina整合springMVC为例: //springMVC的配置: ...-- 配置业务处理类 --> <bean class="org.springboot.<em>mina</em>.codec.WebSocketCodecFactory
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
),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...; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IoSession...IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。需要有开发者自己来实现这个接口。
在golang中,网络协议已经被封装的非常完好了,想要写一个Socket的Server,我们并不用像其他语言那样需要为socket、bind、listen、re...
在服务器端,这意味着一个线程可能会涉及到任何进入的连接,因此你不需要应对多路复用连接的复杂性。另一方面,在 NIO 中,你必须应对非阻塞系统的同步特性,这意味着在一些事件发生时你的应用会被调用。...最后,很重要的是,MINA 是一个专门设计既能工作在客户端又能工作在服务器端的网络框架。...MINA 并不期望在任何情况下都是最好的选择。在考虑使用 MINA 之前要思考几个要素: 易于使用。...想要在你的应用中使用 MINA 的第一件事是要设置环境。我们将描述你需要安装什么,以及如何运行一个 MINA 程序。没啥大不了的,先来体验一下MINA 吧 ......本章总结 在本章中,我们了解了基于 MINA 的客户端以及服务器端的应用体系。我们还涉及了 TCP 服务端/客户端、UDP 服务器端和客户端的例子实现。
领取专属 10元无门槛券
手把手带您无忧上云