import java.net.InetSocketAddress ; import java.io.* ; import java.nio.ByteBuffer ; import java.nio.channels.* ; public class NIOBrowser { public static void main(String [] args) throws IOException { int BUF_SIZE = 256 ; ByteBuffer buffer = ByteBuffer.allocateDirect(BUF_SIZE) ; // Uses inaccessible system memory for storage InetSocketAddress addr = new InetSocketAddress("www.grid2004.org", 80) ; SocketChannel sc = SocketChannel.open(addr) ; // Create a socket channel. String request = "GET /spring2004/index.html HTTP/1.1\r\n" + "Host: www.grid2004.org\r\n\r\n" ; buffer.put(request.getBytes()) ; buffer.flip() ; sc.write(buffer) ; buffer.clear() ; FileOutputStream fs = new FileOutputStream("index.html") ; FileChannel fc = fs.getChannel() ; while(sc.read(buffer) != -1) { buffer.flip() ; while(buffer.hasRemaining()) fc.write(buffer) ; buffer.clear() ; } } }