
NIO
欧米优
白俄罗斯国家技术大学 信息技术软件专业毕业。硕士研究生。请大家多多帮助
展开
-
java.nio.ByteBuffer 以及flip,clear及rewind区别
Buffer 类定义了一个可以线性存放primitive type数据的容器接口。Buffer主要包含了与类型(byte, char…)无关的功能。值得注意的是Buffer及其子类都不是线程安全的。每个Buffer都有以下的属性:capacity这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。limit在Buffer转载 2012-05-09 10:04:43 · 461 阅读 · 0 评论 -
Netty之源代码解析
Netty始终要写一篇来作为终结的,但是到了写的时候才发现无从下手,了解 的还是不够吧。无奈,从四处摘录了一大片东西,很多都是官网下来的,没有什么文字说明,权当参考了。首先来一张总体架构图,这个是从Neety官网上摘下来的,描述了Netty的核心架构和总体功能。 1. BootStrap Bootstrap : ChannelFactory, Ch转载 2012-05-18 14:59:32 · 573 阅读 · 0 评论 -
Mina入门:Java NIO框架Mina、Netty、Grizzly介绍与对比
之前文章【Mina学习极其有效方法推荐】提到过,在开始Mina入门之前,最好先对现有的主流Java NIO框架作一个简单的了解,本文对Java NIO框架Mina、Netty、Grizzly作简单的介绍与对比。我们先来看看三者之间的简介。Mina:Mina(Multipurpose Infrastructure for Network Applications) 是 A转载 2012-05-10 09:32:03 · 974 阅读 · 0 评论 -
MINA 心跳协议
MINA本身自带了对心跳协议的支持,可以对心跳做出细致的配置,昨天仔细研究了一下MINA的API文档,翻译了一下其中心跳的内容(翻译的不好请大家见谅),做了一个测试例子。和需要用到MINA此功能的同行一起探讨一下。 写道这个IoFilter 对IoEventType. SESSION_IDLE状态发出保持连接的请求,同时发回保持连接请求的响应。 这个过滤器要和IoSession转载 2012-05-09 13:09:19 · 1244 阅读 · 0 评论 -
socket, nio socket 及nio socket框架MINA总结
nio学习:最近花了点时间研究了一下nio,及其开源框架MINA,现把心得总结如下:1:传统socket:阻塞式通信每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非常有效,但是如果对每一个连接都产生一个线程的无疑是对系统资源的一种浪费,如果连接数较多将会出现转载 2012-05-09 13:01:26 · 569 阅读 · 0 评论 -
MINA服务端与C++客户端通讯 2
Java与C++通讯还有编码转码的问题存在,假设通讯编码采用UTF-8C++客户端发送时需要转码成UTF-8编码,接收服务端应答消息后再转回Unicode或者GBK编码下面给出完成的C++客户端通讯示例:void Transcoding(LPCTSTR src, UINT srcCode, string& dest, UINT destCode) { int l转载 2012-05-09 16:35:00 · 608 阅读 · 0 评论 -
MINA服务端与C++客户端通讯 1
最近学习了Apache MINA通讯,在使用过程中碰到了一些问题,记录下一些心得。在服务端和客户端都使用MINA提供的库时,通讯一切正常,当我把客户端改为C++代码时,发现客户端发送给服务端的二进制流中的整形数据,位置被倒置了。C++客户端16进制 :0x00000013MINA服务端16进制:0x13000000查询了网上资料后才知道Java在所有平台上都默认是big-endi转载 2012-05-09 16:34:22 · 596 阅读 · 0 评论 -
JAVA NIO异步通信框架MINA选型和使用的几个细节(概述入门,UDP, 心跳)
Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。 Apache MINA是非常著名的基于java nio的通信框架,以前都是自己直接使用udp编程,新项目选型中考虑到网络通转载 2012-05-09 13:04:16 · 1037 阅读 · 1 评论 -
io与nio 区别
ava中的阻塞和非阻塞IO包各自的优劣思考 NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞 与非阻塞 。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待转载 2012-05-09 12:57:44 · 549 阅读 · 0 评论 -
Java nio 初体验
Java的nio是jdk5推出的东西,距现在已经五六年了。我虽然曾经使用过Mina(一个使用事件驱动的nio框架)做过一些项目,但实际上对nio的了解还是很模糊,只是知道它的特点是“非阻塞”。 近期打算研究一下Netty(它跟Mina很像,是同一个作者的作品),所以先研究下Nio。网上的中文资料相当少,大多讲得不清不楚,给的示例代码更是看得人头晕。好在群友“羊八井”推荐了我一本好书:《Java原创 2012-05-10 09:24:33 · 757 阅读 · 0 评论 -
Java NIO与IO 区别和比较
本文将通过一些实例来简单介绍NIO库提供的一些新特性:非阻塞I/O,字符转换,缓冲以及通道。一. 介绍NIONIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。1. Buffer:它是包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。2. Charset:它提供Unicode字符串影射到字节序列原创 2012-05-10 09:13:06 · 526 阅读 · 0 评论 -
Java中的阻塞和非阻塞IO包各自的优劣思考
NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。反应器(Reactor):用于事件多路分离和分派的体系结构模式通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东转载 2012-05-09 11:47:16 · 593 阅读 · 0 评论 -
ByteBuffer的allocate和allocateDirect
在Java中当我们要对数据进行更底层的操作时,通常是操作数据的字节(byte)形式,这时常常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式:Java代码 public static ByteBuffer allocate(int capacity) public static ByteBuffer allocateDirect(int转载 2012-05-09 10:06:38 · 482 阅读 · 0 评论 -
NIO中的ByteBuffer
关于Java中的NIO,网上很多资料,关于ByteBuffer类也有很多内容,这里要说的是clear、flip、rewind三个方法的区别和对应缓冲区的状态。ByteBuffer类没有构造方法,只能通过ByteBuffer.allocate(int)来分配一个新的字节缓冲区下面我用图片展示不同状态下缓冲区,图中管道即操作缓冲区的IO流这里需要明白以下几个术语的含义:缓冲区容量:转载 2012-05-09 10:07:10 · 425 阅读 · 0 评论 -
ByteBuffer的position、flip和clear
position测试:Java代码 ByteBuffer bb = ByteBuffer.allocate(10); System.out.println("起始position: "+bb.position()); bb.put(5, (byte)15); System.out.println("指定位置put数据之后的position: "+bb.positio转载 2012-05-09 10:03:00 · 1090 阅读 · 0 评论 -
java分布式系统通信框架
1.Jboss Netty项目-优秀的NIO框架下载http://www.jboss.org/netty/downloads.html简介http://www.jboss.org/nettyJboss的Netty项目旨在提供异步驱动的网络应用程序的框架和工具, 可以用于快速开发, 可方便维护的、高性能的、高扩展性的服务器/客户端之间的通迅协议。Plurk是一个快速成长,并且已经成为转载 2013-04-17 13:02:01 · 1654 阅读 · 0 评论