NIO
文章平均质量分 73
lxlzhn
热爱技术,热爱互联网!
展开
-
MINA2.0 实例--TimeServer
MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个开源Java项目,她是一个Java网络应用程序开发框架,借助她,Java开发者能够简洁的开发出发高性能和高可用的网络应用程序。她依赖于Java NIO,提供了一套便捷操作诸如TCP/IP和UDP/IP等各种传输协议的、抽象的、事件驱动的和异步的API。原创 2012-11-02 15:12:54 · 9218 阅读 · 1 评论 -
MINA2.0用户手册中文版--第三章 第三节 服务端接口IoAcceptor
要构建一个服务端,你必须选择一个IoAcceptor接口的实现类。接口IoAcceptor基本上来说,该接口的命名是由于accpet()方法,它主要负责在一个客户端和该服务之间创建连接。然后,服务才能接受来自这些连接的请求。有时,我们会称之为“服务端”接口。因为我们需要提供处理多种传输协议(TCP/UDP/...),所以我们就提供了多种该接口的实现,我们已经提供了很翻译 2012-12-17 00:53:29 · 4859 阅读 · 0 评论 -
MINA2.0用户手册中文版--第三章 第四节 客户端接口IoConnector
要构建一个客户端,你必须选择一个IoConnector接口的实现类。IoConnector就像我们需要在服务器端实现IoAcceptor一样,我们需要在客户端中实现IoConnector。同样,我们提供了很多实现类:NioSocketConnector:非阻塞的基于TCP协议的IoConnector实现NioDatagramConector:非阻塞基于UDP协议的IoConne翻译 2012-12-17 00:59:59 · 2691 阅读 · 0 评论 -
Java传统Socket实例——TimeServer
该实例是基于传统的ServerSocket和Socket来写的,因此使用的是也是传统的BIO(Blocking IO),并发的时候都是通过阻塞的方式来处理的,该实例是和MINA 2.0实例——TimeServer对应的,采用单线程通过循环来提供并发访问,以更好的反应BIO和NIO的区别,代码如下:import java.io.DataInputStream;import java.io.原创 2012-11-07 17:06:50 · 2636 阅读 · 0 评论 -
MINA2.0用户手册中文版--第六章 MINA中的传输 第一节 基于APR的传输
简介APR(Apache Protable Runtime Library,Apache可移植运行库)是可以提供很好的可拓展性、性能以及对底层操作系统一致性操作的技术。MINA中提供了APR的通信支持。在这部分,将通过使用一个时间服务器的例子,接触下如何基于APR通信使用MINA。必要前提APR通信依赖下面的组件:APR库 - 下载和安装相应平台的库http翻译 2012-12-30 19:22:15 · 2977 阅读 · 0 评论 -
MINA2.0用户手册中文版--第六章 MINA中的传输 第二节 基于串行传输
在MINA2.0中,你可以使用串行传输进行连接,就像使用TCP通信那样。获取MINA 2.0可以下载最新版本的的MINA版本。如果想获取其他版本的MINA,如果有什么疑问,可以查看开发者手册。必要前提提示信息:如果想要通过Java程序访问串行端口,需要一个本地库(.DLL 或者 .so 取决于你的操作系统). MINA使用的是RXTX.org这个 : f翻译 2013-01-01 22:08:13 · 2643 阅读 · 0 评论 -
MINA 2.0 用户手册
MINA 2.0 用户手册,来自官网的User Guide,由于没有全部完成(有一部分是To be completed...),因此,现在只能给出目录和链接,也是方便自己随时查看,另外:1. 该文档最具权威性2. 该文档虽是英文的,但是比较简单易懂,借助google翻译等工具,完全可以进行快速学习3. 该文档的编排,每页的内容不是很多,有利于增强阅读者的阅读自信,像我这种不喜欢原创 2012-11-02 17:12:34 · 4818 阅读 · 1 评论 -
MINA2.0用户手册中文版--第三章 MINA的IO服务接口IoService
在MINA的应用架构一章中,我们曾提到过服务接口IoService,它是MINA中包含客户端和服务端的所有服务接口(补:各种Acceptor和Connector)的最顶层父接口。 它用来处理所有与远端对等的程序端的交互(补:如果作为服务端,则指的是与需要连接的服务端的交互;如果作为服务端,则指跟远端对等的客户端交互):发送和接收消息,管理session和连接等。 它翻译 2012-12-19 17:09:15 · 2656 阅读 · 0 评论 -
MINA2.0用户手册中文版--第四章 MINA中的Session
在MINA中,session处于核心地位:每当一个客户端连接到服务器上时,一个新的session就会被创建,它会被保存到内存中,直到客户端断开连接。Session被用来保存持久的连接信息,还会附加一些服务器在处理请求时可能需要的任何其他种类的信息,这些信息在session的整个生命周期中都是生效的。Session状态Session的状态会随着时间演变:已连接:ses翻译 2012-12-22 01:15:09 · 7516 阅读 · 1 评论 -
Java的NIO实例——基于NIO的文件复制
JDK1.4中引入的NIO库,和传统IO最大的区别是:传统IO是基于Byte(字节)和Stream(流)的,而NIO是基于Buffer(缓冲)、Channel(通道)和Selector(选择器)的。下面就看下使用IO,BufferedIO和NIO分别实现的文件复制(本来想测试一下分别的性能,但是结果不是很稳定,希望有这方面数据的同学分享下):import java.io.BufferedI原创 2013-03-14 23:42:35 · 1120 阅读 · 0 评论 -
MINA2.0用户手册中文版--第三章 第一节 IoService接口简介
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-12-15,强烈建议看原文)在MINA中,IoService接口提供基础的I/O服务,并负责管理I/O的Sessoin。它是MINA架构中最核心的部分之一,实现IoService的子接口和类,负责了多数低级别I/O操作的处理。IoService的思维导图:我们将会来看IoService接口的职责,以及它翻译 2012-12-14 23:21:06 · 3115 阅读 · 0 评论 -
MINA2.0用户手册中文版--第三章 第二节 IoService接口详情
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-12-15,强烈建议看原文)在MINA中,IoService接口是两个最重要的接口的父接口:IoAcceptorIoConnector要构建一个服务端,你必须选择一个IoAcceptor接口的实现类;而要构建一个客户端,你必须选择一个IoConnector接口的实现类。I翻译 2012-12-15 21:56:15 · 2351 阅读 · 0 评论 -
MINA2.0用户手册中文版--第二章 第三节 TCP客户端实例
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-11-26,另外强烈建议看原文)之前我们已经看过了客户端的架构,现在我们来研究一个有代表性的客户端实例作为参考实现,即实例sumup client。我们将排除那些可以直接重复照搬的代码,而只关注最重要的组成部分,以下是这个客户端的核心代码:public static void main(String[] a翻译 2012-11-26 20:44:53 · 2697 阅读 · 0 评论 -
MINA2.0用户手册中文版--第二章 第五节 UDP客户端实例
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-12-08,强烈建议看原文)这一节我们将看一下上一节中提到的UDP服务器的客户端代码:实现一个客户端需要做如下:创建一个Socket并连接到服务器设置操作处理器IoHandler收集可用内存发送数据到服务器我们来看下包org.apache.mina.example.udp.client中的代翻译 2012-12-08 09:10:59 · 3691 阅读 · 0 评论 -
MINA2.0用户手册中文版--第一章 MINA2.0入门
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-11-12,强烈建议看原文)1. NIO概述 NIO是Java New IO的简称,在JDK1.4版本中引入该API,从那时起,就被广泛的应用。通过使用她,可以通过非阻塞的方式进行IO操作。Java.nio.*包含了如下核心结构:Buffers - 用于基本类型数据的容器Cha翻译 2012-11-12 13:40:32 · 14476 阅读 · 1 评论 -
MINA2.0用户手册中文版--第二章 第一节 MINA应用程序架构
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-11-13,强烈建议看原文)简介 人们经常会问,基于MINA的应用程序的结构是什么样的呢?我们可以通过这篇文章来看一看。从MINA的简报中我们可以看到如下的一个MINA鸟瞰视图: 从这个图我们可以看到,MINA将你的应用(不管是客户端还是服务端)和基础网络层粘合起来,翻译 2012-11-13 16:36:56 · 6709 阅读 · 1 评论 -
MINA2.0用户手册中文版--第二章 第四节 UDP服务端实例
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-12-08,强烈建议看原文)这一次,我们将以 org.apache.mina.example.udp包中的代码作为开始,为了保持简单,我们将只关注和MINA相关的部分。要构建一个UDP服务,我们要完成以下两点:1. 创建一个数据报Datagram Socket用来监听传入的客户端请求(参看包中的代码Memo翻译 2012-12-07 22:39:50 · 3425 阅读 · 0 评论 -
MINA2.0用户手册中文版--第二章 第二节 TCP服务端实例
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-11-20,强烈建议看原文) 本教程将引导创建一个基于MINA的程序实例,例子是一个时间服务器,需要以下先决条件:MINA 2.x CoreJDK 1.5 或 更高版本SLF4J 1.3.0 或 更高版本Log4J 1.2用户: slf4j-api.jar, slf4j-log4j12翻译 2012-11-20 22:59:15 · 5490 阅读 · 2 评论 -
MINA2.0用户手册中文版--第二章 基础
(补充:由于该手册官方也在不断完善中,因此会有变化,最近一次更新时间为2012-12-08,强烈建议看原文)在第一章,我们对MINA的了解如惊鸿一瞥。而在这一章,我们将要深入浅出的来看一下基于MINA的 C/S架构中的客户端和服务端。MINA应用程序架构服务端架构客户端架构TCP服务端实例TCP客户端实例UDP服务端实例UDP客户端实例小结这一章,我们介绍了MI翻译 2012-12-08 09:26:01 · 2432 阅读 · 0 评论 -
MINA2.0用户手册中文版--第五章 MINA中的过滤器
过滤器IoFilter是MINA核心结构之一,它扮演着一个很重要的角色。它可以过滤所有在MINA服务和对应处理程序之间的I/O事件和请求。如果你有编写Java网络应用程序的经验,你可以放心的把他当做Servlet过滤器的一个远亲。MINA提供了很多现成的过滤器,它们通过简化典型的横切关注点,来加快网络应用程序的开发步伐,例如:日志过滤器LoggingFilter记录所有事件和请求协翻译 2012-12-23 21:39:55 · 7966 阅读 · 0 评论 -
MINA2.0用户手册中文版--第七章 MINA中的处理程序Handler
处理程序Handler负责处理MINA触发的所有I/O事件,在事件穿越过滤器链之后,IoHandler接口将会接手所有的事件。它提供如下方法:sessionCreatedsessionOpenedsessionClosedsessionIdleexceptionCaughtmessageReceivedmessageSentsessionCreated方法方法sessionCr翻译 2012-12-28 16:49:07 · 5245 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有转载 2013-03-22 00:04:25 · 1134 阅读 · 0 评论