知识大全 一个非阻塞I/O的例子

Posted

篇首语:知识就是力量,时间就是生命。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一个非阻塞I/O的例子相关的知识,希望对你有一定的参考价值。

Java网络编程从入门到精通(32):一个非阻塞I/O的例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  为了使读者更好地理解非阻塞I/O 本节给出了一个简单的例子用来演示如何将非阻塞I/O应用到网络程序中 读者可以先不必管这个例子的具体细节 因为这个例子的主要目的并不是讲解非阻塞I/O的使用 而是先让读者对非阻塞I/O有一个笼统的感性认识 在看完这个例子后 读者可能会有很多疑问 在本章后面的部分将会逐渐揭开这些迷团 这个例子的主要功能是访问新浪网 并将新浪网的首页在控制台上输出

   package test;import  *;import java nio *;import java nio channels *;import java io *;public class FirstNonBlockingIO    public static void main(String[] args) throws Exception            SocketAddress remote = new InetSocketAddress(   );        SocketChannel channel = SocketChannel open(remote);        String request =  GET / HTTP/ \\r\\n  +                           Host:\\r\\n  +                          Connection:close\\r\\n\\r\\n ;        ByteBuffer header = ByteBuffer wrap(request getBytes());        channel write(header);                ByteBuffer buffer = ByteBuffer allocate( );        WritableByteChannel out = Channels newChannel(System out);        while (channel read(buffer) !=  )                    buffer flip();            out write(buffer);            buffer clear();                channel close();    

  测试

  执行如下命令

   java test FirstNonBlockingIO > sina txt

  打开sina txt后 会看到如下的文件内容

   HTTP/    OKDate: Sun    Apr    : :  GMTServer: Apache/  (Unix)Last Modified: Sun    Apr    : :  GMTConnection: close  </body></>

  由于新浪网的主页内容太多 因此 为了方便查看程序运行结果 使用输出重定向符 > 将本该输出到控制台的内容输出到sina txt文件中 从例程 可以看出 主要有三点和同步I/O存在差异

     连接服务器(第 行) 使用SocketChannel类 而不是Socket类

     向服务端写数据(第 行) 使用SocketChannel类中的write方法 而不是OutputStream

     从服务端读数据(第 行) 使用SocketChannel类中的read方法 而不是InputStream

cha138/Article/program/Java/hx/201311/26564

相关参考

知识大全 非阻塞I/O的缓冲区(Buffer)

Java网络编程从入门到精通(33):非阻塞I/O的缓冲区(Buffer)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我

知识大全 检测解决SQLServer延迟阻塞I/O问题

检测解决SQLServer延迟阻塞I/O问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要

知识大全 java nio 开发实例

  首先了解下所谓的javanio是个什么东西!  传统的并发型服务器设计是利用阻塞型网络I/O以多线程的模式来实现的然而由  于系统常常在进行网络读写时处于阻塞状态会大大影响系统的性能自Java开始

知识大全 测量磁盘I/O

测量磁盘I/O  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我怎样分离OracleI/O来使得性能

知识大全 分析 Java I/O 的工作机制

分析JavaI/O的工作机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  网络I/O优化  网

知识大全 调整 JavaTM I/O 性能

调整JavaTMI/O性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  调整JavaTMI/O

知识大全 减少ORACLE中的磁盘I/O

减少ORACLE中的磁盘I/O  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用Muliple

I/O柜端子排拆线接线作业的危险点和控制措施

I/O柜端子排拆线接线作业的危险点和控制措施如下:步骤或活动:I/O柜端子拆、接线危险点工具不合格或使用不当(伤害类型:触电)控制措施1、使用工具前应进行检查,不完整的工具不准使用。2、认真检查仪器仪

I/O柜端子排拆线接线作业的危险点和控制措施

I/O柜端子排拆线接线作业的危险点和控制措施如下:步骤或活动:I/O柜端子拆、接线危险点工具不合格或使用不当(伤害类型:触电)控制措施1、使用工具前应进行检查,不完整的工具不准使用。2、认真检查仪器仪

知识大全 Java I/O流

JavaI/O流  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  面向字节的流类  一预定义的流对