以一个例子实现了mina客户端和服务端的通讯,现在通过源码来了解建立连接和通讯的过程(基于tcp/ip的实现)。...HelloWorld例子里面实现的是基于TCP/IP协议的通讯,用了mina默认的实现类NioSocketAcceptor和NioSocketConnector。...代码 绑定完成后唤醒NIO的selector开始接收请求 Java代码 selector.wakeup(); 小结: 通过解析NioSocketAcceptor的构造方法,bind()等代码大概了解了mina...服务端初始化相关的一些信息,同时涉及了mina框架相关的IoProcessorIoSessionIoServiceListener等,在下一篇文章中会再做进一步的分析接收到最终的处理请求的过程。
一、介绍 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...; importorg.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.transport.socket.nio.NioSocketAcceptor...; importorg.apache.mina.core.session.IdleStatus; importorg.apache.mina.core.session.IoSession; public
; 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.LineDelimiter...; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketAcceptor...; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.filter.codec.textline.LineDelimiter...; import org.apache.mina.filter.codec.textline.TextLineCodecFactory; import org.apache.mina.transport.socket.nio.NioSocketConnector
MINA 已被全球数以万计的应用所使用。也有一些基于 MINA 的 Apache 项目,而且它们工作的相当好。这就是某种形式的担保,你不需要为你网络传输层的实现的一些神秘的错误而花费大量的时间。...使用模拟对象单元测试 JMX 可管理性 使用 StreamIoHandler 的基于流的 I/O 支持 知名容器诸如 PicoContainer 和 Spring 的集成 从 Netty 的平滑迁移,Apache...在 UNIX 系统,输入: $ tar xzpf apache-mina-2.0.7-tar.gz 你将会在 apache-mina-2.0.7 目录下得到以下内容:| +- dist...在命令行中输入以下命令: $ java org.apache.mina.example.gettingstarted.timeserver.MinaTimeServer 这将启动服务器...原文链接:http://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1-getting-started.html。
这点也正是mina的优势,如果直接用Nio编写,则需要自己编写代码来实现类似Processor的功能。...SocketChannel,SessionConfig和IoService.IoHandler的引用) 2.通过IoSession.write 是数据写出的入口 关于线程 ThreadModel 1.x版本的mina...SocketConnectorConfig cfg = new SocketConnectorConfig(); cfg.setThreadModel(ThreadModel.MANUAL); MINA...Connector Thread :一般作为客户端的请求建立链接线程,实现了接口IoService,维持了一个和服务器端Acceptor的一个链接,线程数量就是创建SocketConnector 的数量 Mina
org.apache.mina.core.service.IoConnector;import org.apache.mina.core.session.IoSession;import org.apache.mina.filter.codec.ProtocolCodecFilter...org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.session.IoSession;import cm.custom.service.reception.RecResponse...;import org.apache.mina.core.session.IoSession;import org.apache.mina.filter.codec.ProtocolEncoderAdapter...; import org.apache.commons.logging.LogFactory; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession...; import org.apache.mina.filter.codec.CumulativeProtocolDecoder; import org.apache.mina.filter.codec.ProtocolDecoderOutput
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 org.apache.mina.transport.socket.nio.NioSocketAcceptor; public class MinaTimeServer {...; import java.util.Date; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IdleStatus...; import org.apache.mina.core.session.IoSession; public class TimeServerHandler extends IoHandlerAdapter
; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...; import org.apache.mina.filter.codec.textline.LineDelimiter; import org.apache.mina.filter.codec.textline.TextLineCodecFactory...; 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进行单独通信(采用阻塞的方式通信)。...} } 仅需要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; /**...写的客户端 //客户端使用mina public class MinaClient { public static void main(String[] args) throws Exception{
Mina各组件介绍上一篇文章已经系统的介绍了Mina的运行流程,Apache推出的Mina性能上很是高效,上章节我们知道内部有很多的类,各个类之间的依赖也是很多,他们之家都是相互依赖。...本篇就当是Mina的文档了。...void exceptionCaught(IoSession session, Throwable cause) 这个方法在你的程序、Mina...CharsetEncoder encoder)可以方便的以指定的编码方式存储字符串、InputStream asInputStream()方法从IoBuffer 剩余的未读的数据中转为输入流等IoFuture========在Mina
在实际项目中,我们引用了一个Apache开源的网络框架,名字MINA,它是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。...(SimpleIoProcessorPool.java:180 ) 8 at org.apache.mina.core.service.SimpleIoProcessorPool...(SimpleIoProcessorPool.java:112 ) 9 at org.apache.mina.core.polling.AbstractPollingIoConnector...(AbstractPollingIoConnector.java:93 ) 10 at org.apache.mina.transport.socket.nio.NioSocketConnector...: Failed to open a selector. 20 at org.apache.mina.transport.socket.nio.NioProcessor.
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina...Mina 主要有1.x 和2.x 两个分支,这里我们讲解最新版本2.0,如果你使用的是Mina 1.x,那么可能会有一些功能并不适用。...MINA 框架简介 当客户首次访问采用MINA编写的程序时,IoAcceptor作为线程运行,负责接受来自客户的请求。...Apache MINA提供一个LoggingFilter类,用来log通信过程。...而如果我们不提供任何过滤器的话,那么在 messageReceived 方法中的第二个参数类型就是一个 byte 的缓冲区,对应的类是 org.apache.mina.common.ByteBuffer
MINA框架的应用比较广泛,应用的开源项目有Apache Directory、AsyncWeb、Apache Qpid、QuickFIX/J、Openfire、SubEthaSTMP、red5等。...测试 首先运行MinaTimeServer,启动服务端,接着在命令行运行“telnet 127.0.0.1 9123”,来登录,这时会看到服务端输出如下: 2008-2-21 16:15:29 org.apache.MINA.filter.logging.LogLevel...$4 log /10.64.2.137:4140 IP和端口号 信息: CREATED 2008-2-21 16:15:29 org.apache.MINA.filter.logging.LogLevel...信息: OPENED 在客户端输入回车,在客户端可以看到服务端返回当前的时间: Thu Feb 21 16:20:14 CST 2008 服务端输出: 2008-2-21 16:20:14 org.apache.MINA.filter.logging.LogLevel...RECEIVED: HeapBuffer[pos=0 lim=2 cap=2048: 0D 0A] 接收收到回车符 Message written… 2008-2-21 16:20:14 org.apache.MINA.filter.logging.LogLevel
术语表 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。...task :maintenance_on queue 'touch maintenance.txt' end task :restart queue 'sudo service restart apache
-- 配置service -->
-- mina核心源码 --> org.apache.mina mina-core...; import org.apache.mina.core.future.WriteFuture; import org.apache.mina.core.session.ExpiringSessionRecycler...; import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.executor.ExecutorFilter...; import org.apache.mina.transport.socket.DatagramSessionConfig; import org.apache.mina.transport.socket.nio.NioDatagramAcceptor...; import org.apache.mina.core.service.IoHandlerAdapter; import org.apache.mina.core.session.IoSession
可以使用maven配置一下内容获取源码: org.apache.mina mina-http 3.0.0-M2 或者下载mina的源码包,查看org.apache.mina.http.HttpServerDecoder....StringUtils; import org.apache.log4j.Logger; import org.apache.mina.core.buffer.IoBuffer; 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; /** * 解码HTTP协议类 * @author Herman.xiong
; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filter.codec.ProtocolCodecFilter...; import org.apache.mina.filter.logging.LoggingFilter; import org.apache.mina.transport.socket.SocketAcceptor...; import org.apache.mina.core.future.IoFuture; import org.apache.mina.core.future.IoFutureListener; import...org.apache.mina.core.service.IoHandler; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.session.IoSession...; import org.apache.mina.filter.logging.LogLevel; import org.apache.mina.filter.logging.LoggingFilter
2、解决方案Java 中有许多可替代 pyftpdlib 的 FTP 服务器库,其中包括:Apache FtpServer:Apache FtpServer 是 Apache Jakarta 项目的一部分...Mina FtpServer:Mina FtpServer 是一个基于 Apache MINA 框架的 FTP 服务器,特点是轻量级、高性能和可伸缩性,支持多种协议和特性,包括 SSL/TLS、匿名登录...代码示例使用 Apache FtpServer 创建一个简单的 FTP 服务器:import org.apache.ftpserver.FtpServer;import org.apache.ftpserver.FtpServerFactory...FtpServer 创建一个简单的 FTP 服务器:import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory...;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;import org.mina.transport.socket.nio.NioSocketConnector
Mina异步IO使用的Java底层JNI框架,Mina提供服务端和客户端,将我们的业务解耦开发.真正做到高内聚低耦合的思想核心类===IoService :Mina中将服务端和客户端都看成是服务,这里提供统一接口...比如Mina框架中用来创建服务端类NioSocketAcceptor。他直接继承了AbstractPollingIoAcceptor。...剩下的事情已经和Mina基本没多大关联了。我们将在这里处理业务逻辑,使用到的就是Handler提供的接收消息和发送消息两个功能。...总结== 今天我们了解了Mina工作的流程,主要就是IoFilter和IoHandler实现消息的通信 。 千里之行始于足下,一点一点的进步。...下面贴出一份总结的图谱帮助我们理解Mina流程我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
领取专属 10元无门槛券
手把手带您无忧上云