博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mina Basics 06-传输
阅读量:6557 次
发布时间:2019-06-24

本文共 2509 字,大约阅读时间需要 8 分钟。

1.APR运输

2.串行传输

APR运输

介绍

提供卓越的可扩展性,性能以及与本机服务器技术的更好集成。 APA支持APR运输。在本节中,我们将基于如何使用MINA进行APR传输。我们将使用Time Server示例。

前置条件

APR运输取决于以下组件

APR库 - 从http://www.apache.org/dist/tomcat/tomcat-connectors/native/下载/安装适用于该平台的库 JNI包装器(tomcat-apr-5.5.23.jar)jar随附发行版

将本机库放在PATH中

使用APR传输

有关完整源,请参阅Time Server示例

让我们看看基于NIO的Time服务器实现如何

IoAcceptor acceptor = new NioSocketAcceptor(); acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); acceptor.setHandler(  new TimeServerHandler() ); acceptor.getSessionConfig().setReadBufferSize( 2048 );acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 ); acceptor.bind( new InetSocketAddress(PORT) );

让我们看看如何使用APR Transport

IoAcceptor acceptor = new AprSocketAcceptor(); acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); acceptor.setHandler(  new TimeServerHandler() ); acceptor.getSessionConfig().setReadBufferSize( 2048 );acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 ); acceptor.bind( new InetSocketAddress(PORT) );

  

我们只是将NioSocketAcceptor更改为AprSocketAcceptor。就是这样,现在我们的时间服务器将使用APR传输。

剩下的处理过程保持不变。

串行传输

使用MINA 2.0,您可以像连接到MINA的TCP / IP端口一样连接到串行端口。

 

获得MINA2.0

您可以下载最新的内置版本(2.0.2)。

如果您希望从主干中构建代码,并需要帮助,请参阅开发人员指南。

条件

有用的信息

在从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 =参数指定放置本机库的位置

mina-transport-serial jar不包含在完整发行版中。你可以在

连接到串口

由于通信介质的点对点性质,MINA的串行通信仅提供IoConnector。

此时您应该已经阅读过MINA教程。

现在要连接到串行端口,您需要一个SerialConnector:

// 创建你的连接IoConnector connector = new SerialConnector()connector.setHandler( ... here your buisness logic IoHandler ... );

没有什么不同的SocketConnector。

让我们创建一个连接到我们串口的地址。

SerialAddress portAddress=new SerialAddress( "/dev/ttyS0", 38400, 8, StopBits.BITS_1, Parity.NONE, FlowControl.NONE );

第一个参数是您的端口标识符。对于Windows计算机,串行端口称为“COM1”,“COM2”等...对于Linux和其他一些Unix:“/ dev / ttyS0”,“/ dev / ttyS1”,“/ dev / ttyUSB0”。

其余参数取决于您正在驱动的设备和假定的通信特性。

1.波特率

2.数据位

3.平价

4.流量控制机制

完成后,将连接器连接到地址:

ConnectFuture future = connector.connect( portAddress );future.await();IoSession sessin = future.getSession();

瞧!其他一切都像往常一样,你可以插入你的过滤器和编解码器。有关RS232的更多信息,请访问:http://en.wikipedia.org/wiki/RS232

转载于:https://www.cnblogs.com/fubinhnust/p/9943623.html

你可能感兴趣的文章
CSU 1974
查看>>
Spring事务管理配置以及异常处理
查看>>
【SP26073】DIVCNT1 - Counting Divisors 题解
查看>>
Postman 添加get请求和post请求
查看>>
UVA10140 Prime Distance
查看>>
Java正确URL解码方式:URLDecoder.decode
查看>>
类的 接口&抽象类思想、多态、反射、异常处理
查看>>
three.js 使用OrbitControls.js自由视角观察
查看>>
通过静态分析和持续集成 保证代码的质量 (PRQA )2
查看>>
LeetCode OJ:Invert Binary Tree(反转二叉树)
查看>>
C#4 for循环 迭代法 穷举法应用
查看>>
人机大战结束:AlphaGo 4:1 击败李世石
查看>>
(转)Javascript面向(基于)对象编程
查看>>
【Prince2科普】Prince2的七大原则(6)
查看>>
运维笔记--ubuntu rm删除文件后 恢复
查看>>
Android学习笔记--Gridview的两个神奇属性
查看>>
第15章 枚举类型和位标志
查看>>
ip sevices
查看>>
Python进阶07 函数对象
查看>>
【转】转换到 COFF 期间失败: 文件无效或损坏
查看>>