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);
		}
	}
	
}

猜你喜欢

转载自allen-huang.iteye.com/blog/2275939
今日推荐