注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

午夜阳光

 
 
 

日志

 
 

JDK6.0学习笔记(十三)nio开发  

2011-12-12 11:19:34|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
/**
 * nio开发
 * 通过参数指定的主机端口发送一段请求报文,然后读取和打印报文
 * 需要接受主机名和监听端口作为输入参数
 * */
import java.io.IOException;
import java.net.UnknownHostException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
public class ReadURL {
    public static void main(String args[]) {
        String host = args[0];
        int port = Integer.parseInt(args[1]);
        SocketChannel channel = null;
        try {
            // Setup
            InetSocketAddress socketAddress = new InetSocketAddress(host, port);
            Charset charset = Charset.forName("UTF-8");
            CharsetDecoder decoder = charset.newDecoder();
            CharsetEncoder encoder = charset.newEncoder();
            // Allocate buffers
            ByteBuffer buffer = ByteBuffer.allocateDirect(1024);
            CharBuffer charBuffer = CharBuffer.allocate(1024);
            // Connect
            channel = SocketChannel.open();
            channel.connect(socketAddress);
            // Send request
            String request = "GET / /r/n/r/n";
            channel.write(encoder.encode(CharBuffer.wrap(request)));
            // Read response
            while ((channel.read(buffer)) != -1) {
                buffer.flip();
                // Decode buffer
                decoder.decode(buffer, charBuffer, false);
                // Display
                charBuffer.flip();
                System.out.println(charBuffer);
                buffer.clear();
                charBuffer.clear();
            }
        } catch (UnknownHostException e) {
            System.err.println(e);
        } catch (IOException e) {
            System.err.println(e);
        } finally {
            if (channel != null) {
                try {
                    channel.close();
                } catch (IOException ignored) {
                }
            }
        }
    }
}

  评论这张
 
阅读(979)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018