`
allen.huang
  • 浏览: 10974 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SocketChannel

阅读更多

创建方式:
    1.打开一个SocketChannel并连接到互联网上的某台服务器。
    2.一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。

import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
import java.nio.charset.Charset;
import org.junit.Test;
public class SocketChannelTest {

	@Test
	public void testRead() throws Exception{
		//打开 SocketChannel
		SocketChannel socketChannel = SocketChannel.open();
		socketChannel.connect(new InetSocketAddress("www.baidu.com", 80));
		Charset charset = Charset.forName("GBK");
		socketChannel.write(charset.encode("GET " + "/ HTTP/1.1" + "\r\n\r\n"));
		ByteBuffer buf = ByteBuffer.allocate(48);
		 while (socketChannel.read(buf) != -1) {
			buf.flip();
			while(buf.hasRemaining()){
				System.out.print((char)buf.get());;
			}
			buf.clear();
		}
		//关闭 SocketChannel
		socketChannel.close();
	}
	
	@Test
	public void testWrite()throws Exception{
		String newData = "Hello SocketChannel " + System.currentTimeMillis();
		SocketChannel socketChannel = SocketChannel.open();
		socketChannel.connect(new InetSocketAddress("www.baidu.com", 80));
		ByteBuffer buf = ByteBuffer.allocate(48);
		buf.clear();
		buf.put(newData.getBytes());
		buf.flip();
		while(buf.hasRemaining()) {
			socketChannel.write(buf);
		}
	}
	
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics