`
bsr1983
  • 浏览: 1121955 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MINA学习笔记六——第六章 Transports 传输协议

    博客分类:
  • Mina
 
阅读更多

第六章 Transports 传输协议

6.1 APR传输协议

6.11 简介

    APR Apache Portable Runtime)提供优越的可伸缩性,高性能且更好的与本地服务集成的计算。MINA支持APR传输协议。在这一章节中,我们将了解一下如何通过MINA使用APR传输协议。我们以一个时间服务器的示例来做说明。

6.1.2 先决条件

APR传输协议依赖如下组件:

1APR依赖包:根据平台选择合适的依赖包下载并安装,下载地址为:http://www.apache.org/dist/tomcat/tomcat-connectors/native/

2JNI包装器(tomcat-apr-5.5.23.jar)这个jar已包含在MINA的发布版中(MINA根目录的lib文件夹中)

3)将本地依赖库加入PATH环境变量中

6.1.3 使用APR传输协议

完整代码参见:Time Server

基于非阻塞传输协议的时间服务器实现代码如下:

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传输协议的实现代码如下:

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传输协议的实现

服务完成时的处理过程也是一样的。

6.2 串行传输协议

    通过使用MINA,你可以像连接一个TCP/IP端口一样连接一个序列号端口。

6.2.1 获取MINA

你可以下载MINA最新的构建版本(2.0.2)。

如果你喜欢构建从trunk获取的代码,并且需要帮助,请参照开发者指南。

6.2.2 先决条件

1)实用信息

在你通过java程序访问一个串行端口前,你需要一个本地依赖包(.dll.so文件,这取决于你的操作系统)。MINA使用的是来自RXTX.org的包,下载地址为:ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip.

只需要将good.dll.so文件放到你的JDKJREjre/lib/i386/文件夹下,或者使用-Djava.library.path参数来定位你的本地依赖包。

mina-transport-serial.jar没有包含被包含在发布版中,你可以从这里下载:http://repo1.maven.org/maven2/org/apache/mina/mina-transport-serial/2.0.2/

6.2.3 连接到一个串行端口

由于通信媒体的点到点的性质,MINA提供的用来实现串行通信的仅有一个IoConnector

此时,我们假定你应该已经读过了MINA的教程。

现在我们需要一个SerialConnector来连接到一个串行的端口。

// create your connector

IoConnector connector =new SerialConnector()

connector.setHandler(...此处是用来处理你的业务逻辑的 IoHandler ...);

SerialConnector也没有什么特别的。

让我们来创建一个地址用来连接我们的串行端口。

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/RS232s

0
2
分享到:
评论
4 楼 bsr1983 2015-02-05  
45088648 写道
bsr1983 写道
45088648 写道
本地依赖库 是指什么

本地依赖包(.dll或.so文件,这取决于你的操作系统)

我的是win8 ,”将本地依赖库加入PATH环境变量中“ 我将 tcnative-1.dll 放到了 C:\Windows\System32 中,是说将C:\Windows\System32配到path里吗

C:\Windows\System32应该默认就在PATH环境变量中的吧,%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
3 楼 45088648 2015-02-05  
bsr1983 写道
45088648 写道
本地依赖库 是指什么

本地依赖包(.dll或.so文件,这取决于你的操作系统)

我的是win8 ,”将本地依赖库加入PATH环境变量中“ 我将 tcnative-1.dll 放到了 C:\Windows\System32 中,是说将C:\Windows\System32配到path里吗
2 楼 bsr1983 2015-02-05  
45088648 写道
本地依赖库 是指什么

本地依赖包(.dll或.so文件,这取决于你的操作系统)
1 楼 45088648 2015-02-05  
本地依赖库 是指什么

相关推荐

    Mina学习笔记

    Apache Mina是一个基于Java的网络通信框架,专为高性能、高可用性和可扩展性而设计。...在深入学习Mina的过程中,理解IoService及其子类的工作原理,以及如何结合IoHandler实现业务逻辑,对于掌握Mina框架至关重要。

    MIna2.0学习笔记

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,主要用在开发网络通信应用,如TCP/IP和UDP协议的应用。Mina2.0作为其更新版本,提供了更丰富的功能和优化的性能,使得开发者能更高效地构建网络服务。 *...

    apache mina 学习笔记三(子项目FtpServer)

    在本学习笔记中,我们将专注于MINA的子项目——FtpServer,它是实现FTP服务器功能的一个模块。 FTP(File Transfer Protocol)是一种广泛使用的互联网协议,用于在不同主机之间传输文件。Apache MINA FtpServer提供...

    Mina2.0学习笔记(修订版).

    Apache Mina是一个高性能、事件驱动的网络应用框架,主要用于简化开发服务器端的复杂性,尤其在处理TCP/IP、UDP和SSL/TLS等协议时。它提供了丰富的API和工具,使得开发者能够快速构建网络应用程序,如FTP、SMTP、...

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)

    mina学习笔记,记录所有API

    在MINA的学习笔记中,记录的所有API通常会包括以下几个核心部分: 1. **IoSession**: 这是MINA的核心接口,代表了客户端和服务器之间的连接。IoSession提供了读写数据、管理连接状态、获取会话属性等功能。例如,`...

    给予mina 协议进行大数据传输

    标题中的“给予mina协议进行大数据传输”指的是一种基于Java的网络通信框架——Apache MINA(Model-View-Controller for Network Applications)。MINA是Apache软件基金会的一个项目,它提供了一个高度可扩展和高...

    mina2学习笔记

    ### Mina2学习笔记知识点概览 #### 一、Mina入门详解 ##### 第一步:下载使用的Jar包 - **mina-core-2.0.0-M1.jar**:这是Mina核心库,提供了NIO框架的基本功能。 - **slf4j-api-1.5.2.jar**:用于日志记录的高级...

    Mina2.0学习笔记(完整版).doc

    创建Mina项目时,需要引入必要的Mina库依赖,如mina-core,然后根据Mina提供的API来配置服务器和客户端,包括设置监听端口、选择传输协议、添加过滤器等。 **8. 服务端和客户端程序** 服务端程序通常包括初始化...

    Mina 学习笔记(入门)

    **Mina 学习笔记(入门)** Apache Mina 是一个高度可扩展的网络通信框架,主要用于构建高性能、高效率的服务器端应用。它提供了一种简单的方式来处理网络协议,如TCP/IP和UDP/IP,以及SSL/TLS加密的连接。在本学习...

    Apache mina2学习笔记DEMO

    在这个"Apache MINA2学习笔记DEMO"中,我们很可能会看到如何使用MINA来创建一个自定义协议的示例。自定义协议通常是为了满足特定应用的需求,例如高效的数据传输、安全性或者特定的编码格式。MINA允许开发者定义自己...

    mina学习笔记

    《mina学习笔记》 Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是TCP和UDP协议的应用。MINA 提供了一种与网络协议无关的API,...

    MINA学习笔记(仅供参考)

    ### MINA学习笔记 #### MINA概述 MINA是一个用Java编写的高性能、轻量级的网络通信框架,主要用于简化网络编程的复杂性。它支持多种传输协议(如TCP/IP和UDP/IP),并且提供了一套丰富的API来处理网络通信相关的...

    Mina2.0学习笔记(修订版)

    ### Mina2.0学习笔记核心知识点概览 #### 一、Mina入门与环境搭建 **Mina简介** Mina是Apache旗下的一款强大的网络应用框架,专为高性能和高可扩展性网络应用设计,其核心是利用Java NIO技术提供事件驱动的异步API...

    Mina2.0学习笔记

    ### Mina2.0学习笔记知识点汇总 #### 一、Mina简介 - **Mina定义**:Mina是Apache组织推出的一个网络应用框架,它能够帮助开发者构建高性能且易于扩展的网络应用程序。通过提供一个抽象的、事件驱动的异步API,Mina...

    Mina网络通信传输

    Mina网络通信传输是基于Java开发的一个高性能、可伸缩的网络应用框架,常用于构建服务器和客户端之间的通信系统,尤其适用于即时聊天应用。Mina提供了丰富的API和工具,简化了网络编程的复杂性,使得开发者可以专注...

    Apache_Mina2.0学习笔记

    最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。 引言 1 一. Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长...

    mina初步学习笔记

    ### Mina初步学习笔记知识点概览 #### 一、Mina简介及下载配置流程 **Mina**,全称**Multipurpose Infrastructure Networked Applications**,是Apache基金会开发的一个高性能网络应用框架,旨在帮助开发者构建高...

Global site tag (gtag.js) - Google Analytics