16 socketChannel.write(ByteBuffer) 浠嶴electionKey涓粦瀹氱殑SocketChannel瀵硅薄杈撳嚭娑堟伅嫻?/span>
client绔細
1 SocketChannel.open() 鎵撳紑SocketChannel
2 SocketChannel.configureBlocking(false) 灝哠ocketChannel閰嶇疆涓洪潪闃誨妯″紡
3 SocketChannel.connect(host,port) 榪炴帴鍒版寚瀹氱殑鐩爣鍦板潃
4 Selector.open() 鎵撳紑Selector
5 SocketChannel.register(Selector,int) 鍚慡elector娉ㄥ唽鎰熷叴瓚g殑浜嬩歡,connected,read,write
6 while(true) 寰幆鎵ц淇濊瘉瀹㈡埛绔竴鐩村浜庤繍琛岀姸鎬?/span>
7 Selector.select() 浠嶴elector涓幏鍙栨槸鍚︽湁鍙鐨刱ey淇℃伅
8 for(SelectionKey key:selector.selectedKeys()) 閬嶅巻selector涓墍鏈塻electedKeys
9 SelectionKey.isConnectable() 鍒ゆ柇鏄惁涓鴻繛鎺ュ緩绔嬬殑綾誨瀷
10 SelectionKey.channel() 鑾峰彇緇戝畾鐨凷ocketChannel
11 SocketChannel.finishConnect() 瀹屾垚榪炴帴鐨勫緩绔嬶紙TCP/IP鐨勪笁嬈℃彙鎵嬶級
12 SelectionKey.isReadable() 鍒ゆ柇鏄惁涓哄彲璇葷被鍨?/span>
13 SelectionKey.channel() 鑾峰彇緇戝畾鐨凷ocketChannel
14 SocketChannel.read(ByteBuffer) 浠嶴ocketChannel涓鍙栨暟鍒癇yteBuffer涓?/span>
15 SocketChannel.write(ByteBuffer) 鍚慡ocketChannel涓啓鍏yteBuffer瀵硅薄鏁版嵁

]]>