ApacheMina学习笔记(1)-入门
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ApacheMina学习笔记(1)-入门,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2833字,纯文字阅读大概需要5分钟。
内容图文
![ApacheMina学习笔记(1)-入门](/upload/InfoBanner/zyjiaocheng/148/32f789d2c1f8490b8034c783a105090f.jpg)
1.非阻塞IO
非阻塞IO的API在JAVA 1.4版本出现,并且已经被用于数以万计的应用当中.NIO API覆盖了非阻塞的各种操作.在java.nio.*的包中包含了下面一些重要的结构:
Buffers - Data Containers Chartsets - Containers translators for bytes and Unicode Channels - represents connections to entities capable of I/O operations Selectors - provide selectable, multiplexed non-blocking IO Regexps - provide provide some tools to manipulate regular expressions
在MINA框架中,我们对于Channels,_Selectors_ 和 Buffers最为感兴趣,我们希望对用户隐藏这部分.
2.NIO vs BIO
理解这两种API之间的区别是很重要的.BIO,即阻塞IO,依赖于socket采用阻塞模式,当你读写或者其他任何操作socket的时候,调用者会阻塞直至该操作完成.
但是在一些实际情况中,它期待于被调用者在完成请求时能够通知调用者,而调用者在同时可以完成其他的操作.这就是NIO.当你有很多个已连接的socket,NIO是一种更好的解决方法,你不需要为每个连接创建特定的线程,你可以仅仅只采用一些线程去做同样的工作.如果你想要获得更多的关于NIO的信息,网络上有很多这方面的资料和书籍.
3.Why MINA?
写一些网络应用程序,通常被看作是一种负担,是一种底层的开发。是一块开发者不经常接触的领域,或者曾经在学校学习过,但是已经忘记了,或者网络层的复杂性被更高层的抽象隐藏了,而你并不了解底层的东西。
当提到异步IO的时候,一个额外的复杂性出现了:时间.
在BIO和NIO两者间最大的不同就是,在BIO中,当你发送一个请求,你必须等待知道请求被回应.在服务端,意味着每当有一个连接到来时,要有一个线程被创建.所以你不得不处理多路连接的复杂性.而在NIO中,你得在一个非阻塞系统中解决同步问题,它意味着,当一些事件发生时,你不得不被卷入其中.在NIO中,你不需要等待你之前的调用,你发送一个请求,当请求完成时会通知你的.
4.The need of a framework
考虑到这些差异,以及这些问题的复杂性,最好的解决方法就是将这些复杂性隐藏起来,这就是MINA所做的.但是MINA可以做的更多,当通过TCP,UDP或者其他机制通讯的时候,它提供了一些常见的IO。如果我们只考虑TCP和UDP,MINA可以区分这两种协议,并且让你的注意力可以集中在你的应用程序的其他部分。
MINA不仅仅可以解决TCP和UDP问题,他对于串行通信,ARP也很有用。
最后,MINA是一种被定制的用来解决服务器客户端通信问题的网络框架,书写一个高度可扩展的,根据需求适应的服务器,并且让内存性能得以体现,这些都是MINA所擅长的,总是它希望让你开发服务器的时候,变得轻松。
5.First Steps
下面我们会展示使用MINA是多么的简单,并且运行一个非常简单的例子。首先,到这里去下载MINA的最新版,除非你有足够的理由让你不用最新版,否则希望你能用最新版开发。http://mina.apache.org/mina-project/downloads.html。下载完毕之后,解压所下载的文件。目录下面会包含一些子目录,其中disk包含MINA库的jar文件,docs包含了API文档,lib包含了MINA所需要的jar文件。
6.运行第一MINA程序
首先,如果你在终端,需要将一下包加入classpath,修改/etc/profile,并让他生效。如果你用集成环境,build your classpath就可以了。
以上就是Apache Mina 学习笔记(1) - 入门的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!
内容总结
以上是互联网集市为您收集整理的ApacheMina学习笔记(1)-入门全部内容,希望文章能够帮你解决ApacheMina学习笔记(1)-入门所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。