《Apache MINA 2.0 用户指南》第六章:传输

2023-11-01

最近准备将Apache MINA 2.0 用户指南英文文档翻译给大家,但是我偶然一次百度,发现“Defonds”这位大牛已经翻译大部分文档。

原文链接:http://mina.apache.org/mina-project/userguide/ch11-ssl-filter/ch11-ssl-filter.html

APR 传输
        简介
        APR (Apache Portable Runtime,Apache 可移植运行) 提供了更好的扩展性、性能以及更好的与本地服务器技术的集成。MINA 照常 APR 传输。现在我们将了解如何使用 MINA 进行 APR 传输。我们将为此使用时间服务器的例子。
        先决条件
        APR 传输取决于以下组件
        APR 库 - 从 http://www.apache.org/dist/tomcat/tomcat-connectors/native/ 为你的平台下载并安装适当的库
        JNI 包装 (tomcat-apr-5.5.23.jar) 这个 jar 附带于在发布版中
        把本地库放在环境变量中

        使用 APR 传输
        访问 时间服务器 例子以获取完整源代码
        现在看一下基于 NIO 的时间服务器应用:

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. IoAcceptor acceptor = new NioSocketAcceptor();  
  2.   
  3. acceptor.getFilterChain().addLast( "logger"new LoggingFilter() );  
  4. acceptor.getFilterChain().addLast( "codec"new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));  
  5.   
  6. acceptor.setHandler(  new TimeServerHandler() );  
  7.   
  8. acceptor.getSessionConfig().setReadBufferSize( 2048 );  
  9. acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );  
  10.   
  11. acceptor.bind( new InetSocketAddress(PORT) );  

        然后看一下如何使用 APR 传输:
[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. IoAcceptor acceptor = new AprSocketAcceptor();  
  2.   
  3. acceptor.getFilterChain().addLast( "logger"new LoggingFilter() );  
  4. acceptor.getFilterChain().addLast( "codec"new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));  
  5.   
  6. acceptor.setHandler(  new TimeServerHandler() );  
  7.   
  8. acceptor.getSessionConfig().setReadBufferSize( 2048 );  
  9. acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );  
  10.   
  11. acceptor.bind( new InetSocketAddress(PORT) );  

        只需要 NioSocketAcceptor 改为 AprSocketAcceptor。就这些,现在我们的时间服务器可以使用 APR 传输了。
        其他完成过程保持不变。


         串行传输
        使用 MINA 2.0 你可以连接到串行端口,就行你使用 MINA 连接到一个 TCP/IP 端口一样。
         获取 MINA 2.0
        你可以下载最新构建的版本 (2.0.2)。
        如果你更喜欢从 trunk 下构建代码,并且需要为此获得帮助,请咨询开发者指南。
         先决条件
         有用信息
        在使用 Java 程序访问串行端口之前你需要一个本地库 (因你的操作系统不同可能是 .DLL 或者 .so)。MINA 使用的是来自 RXTX.org 的:ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip
        只需要把合适的 .dll 或者 .so 放在你的 JDK/JRE 的 jre/lib/i386/ 目录下,或者使用 -Djava.library.path= argument 来制定你所放置的本地库。

         有用信息
        mina-transport-serial
 的 jar 不包括在完整发布版本里头。你可以从这里下载到它。

         连接到串行端口
        MINA 所提供的串行通信只有一个 IoConnector,根据点对点通信媒体的性质。
        这里假定你已经读过了 MINA 指南。
        你需要一个 SerialConnector 以连接到一个串行端口:
[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. // create your connector  
  2. IoConnector connector = new SerialConnector()  
  3. connector.setHandler( ... here your buisness logic IoHandler ... );  

        除了 SocketConnector 之外没啥不同的。
        现在为连接到我们的串行端口创建一个地址:
[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. SerialAddress portAddress=new SerialAddress( "/dev/ttyS0"384008, StopBits.BITS_1, Parity.NONE, FlowControl.NONE );  

        第一个参数是你的端口标识。对于 Windows 系统的电脑,串行端口被叫做 "COM1"、"COM2" 等等...对于 Linux 和其他 Unix 系统:"/dev/ttyS0"、"/dev/ttyS1"、"/dev/ttyUSB0"。
        其他参数取决于你的设备和通信特性。
  • 波特率
  • 数据位
  • 奇偶性
  • 流控制机制
        这个完成之后,将连接器连接到相应地址:
[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. ConnectFuture future = connector.connect( portAddress );  
  2. future.await();  
  3. IoSession sessin = future.getSession();  

        就这些!其他照常,你可以插进你的过滤器和编解码器。更多信息请参考 RS232: http://en.wikipedia.org/wiki/RS232

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Apache MINA 2.0 用户指南》第六章:传输 的相关文章

随机推荐

  • 医疗信息管理系统数据库--MySQL

    医疗信息管理系统数据库 MySQL 友情连接 1 学生成绩管理系统数据库设计 MySQL 2 邮件管理数据库设计 MySQL 3 点餐系统数据库设计 SQL Server 4 商品管理系统数据库设计 SQL Server 5 SQL Ser
  • 在WebView中对第三方H5页面的文本密码框添加自定义随机键盘

    前言 首先介绍一下这个需求的背景 由于公司是涉及到金融行业的需要与银行对接资金存管 出于保密性这里不直接列出公司名字和银行名字 从2018年国家对金融行业大整改以来 为了能够顺利通过备案 我们也跟着政府的脚步一步一步走向合规 好了 大致就是
  • 堡垒机-jumpserver环境搭建

    一 Jumpserver简单介绍 Jumpserver 是全球首款完全开源的堡垒机 使用 GNU GPL v2 0 开源协议 是符合 4A 的专业运维审计系统 Jumpserver 使用 Python Django 进行开发 遵循 Web
  • c语言链式栈课程设计,C语言实现链式栈(LinkStack)

    使用单链表来实现 push pop均在链表头部进行 linkStack h ifndef LINK STACK H define LINK STACK H include include include include typedef vo
  • 加密数字货币的开发技术介绍

    要问当前所有区块链应用中最火的是什么应用 非加密货币莫属 看看各个跟区块链相关的讨论组 整天热火朝天地讨论的是各种币的行情 即使是技术讨论组 除了一些热门讨论外 最吸引注意的莫过于本币的涨跌还有各种代币的ICO了 首先 加密数字货币是什么鬼
  • position absolute相关知识点

    前言 最近再看position相关知识点 发现有许多以前没有注意到的细节知识点 有不小的收获 本文就position absolute使用详细分析下 具体分析 position是CSS中比较重要的一个属性 常用于页面布局 它的值有4个 st
  • oracle数据库与postgre数据库之间的互相迁移

    oracle与postgre之间互相迁移之前要明白 postgreSQL中默认使用小写 oracleSQL中默认大写 迁移分成3个步骤 数据及结构迁移 迁移之后的类型及长度变化 不兼容的函数替换 1 数据及结构迁移 1 1数据大小写同步 o
  • JS 判断对象中是否包含某属性

    一 通过点或者方括号 我们在使用对象的时候 通过点或方括号可以获取对象的属性值 如果该对象自身不存在这个属性 就会返回undefined var obj name 小破船 doWhat 借箭 console log obj name 小破船
  • css linear-gradient 设置背景颜色渐变

    CSS3 渐变能够让背景颜色在两个或多个颜色之间平滑过渡 基本语法 background linear gradient direction color stop1 color stop2 direction 是指渐变的方向 color s
  • 迷宫问题寻宝(c++实现,求最短路径,显示路径)

    定义一个二维数组 int maze n m 它表示一个迷宫 其中的1表示道路不通 0表示可以走的路 3 表示宝藏 只能横着走或竖着走 不能斜着走 要求编程序找出找到宝藏的最短路路径 题目保证有解且只有一个最短路径 且只能从迷宫边缘进入迷宫
  • tomcat中仅启动指定的项目,不启动其它项目

    使用tomcat调试项目时 若部署过多项目会导致启动时间很长 这时指定自己想启动的项目就显得很有必要了 具体方法如下 一 打开tomcat中的server xml配置文件 在Host节点中添加或修改如下属性 deployXML false
  • QT系列第3节 QT中混合UI设计

    QT开发过程中 经常使用Qt designer设计器和代码方式结合来及进行ui设计 本节将介绍这两种方式混合进行ui开发 目录 1 工程添加图片资源 2 添加菜单 3 添加工具栏 4 简单文本编辑器实现 5 QT Creator常用快捷键
  • scrapy设置代理ip(精简版)

    在middlewares py文件中 添加下面的代码 import scrapy from scrapy import signals import random class ProxyMiddleware object def proce
  • 爬取淘宝价格

    爬取淘宝价格 from selenium import webdriver from lxml import etree from time import sleep 实例化一个浏览器对象 bro webdriver Chrome exec
  • [调用函数]

    注 梳理 整理 用来帮助自己学习 如有错误 请指出 1 编写一个函数 该函数接受两个整数作为参数并返回它们的和 在主函数中调用该函数并输出结果 示例输入 5 7 示例输出 12 解题思路 首先需要定义一个函数来实现两个整数的加法 函数的返回
  • 对于进程同步和异步的理解

    多进程并发执行具有异步的特性 进程异步就是指一个以上的进程在并发执行时具有的异步特型 就比如说两个进程之间指令的执行顺序是不确定的 具有很强的随机性 举个例子 现在有两个并发执行的进程 A 和 B 各自都有n条指令需要执行 然而 我的CPU
  • python后端学习(七)HTTP协议、实现WEB服务器

    HTTP协议简介 浏览器 gt 服务器发送的请求格式如下 GET HTTP 1 1 请求方式 路径 协议及版本 Host 127 0 0 1 8080 请求的地址 Connection keep alive 长连接 Accept text
  • RS485模块的介绍及引脚连线说明

    RS485模块通讯 1 RS 485简介 2 SP3485芯片及应用 1 RS 485简介 RS 485采用平衡发送和差分接收 因此具有抑制共模干扰的能力 以下是某宝上RS485模块的截图 应用特点 传输数据速度快 高达10Mbps 即10
  • 【老生谈算法】matlab实现粒子滤波及实现

    粒子滤波及matlab实现 1 文档下载 本算法已经整理成文档如下 有需要的朋友可以点击进行下载 说明 文档 点击下载 本算法文档 老生谈算法 matlab实现粒子滤波及实现 doc 更多matlab算法原理及源码详解可点击下方文字直达 5
  • 《Apache MINA 2.0 用户指南》第六章:传输

    最近准备将Apache MINA 2 0 用户指南英文文档翻译给大家 但是我偶然一次百度 发现 Defonds 这位大牛已经翻译大部分文档 原文链接 http mina apache org mina project userguide c