Java NIO 是 Java 1.4引入的一個新的IO API,可以有效地提高IO的性能。與傳統的Java IO設計不同的是,Java NIO采用了非阻塞式IO操作,使用緩存區進行數據交換。通過NIO可以實現網絡通信,Socket是NIO中的重要部分。
import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; public class NIOSocketClient { public static void main(String[] args) throws Exception { SocketChannel channel = SocketChannel.open(); channel.configureBlocking(false); channel.connect(new InetSocketAddress("localhost", 9999)); while(!channel.finishConnect()){ //等待連接完成 } System.out.println("連接成功!"); ByteBuffer buffer = ByteBuffer.allocate(1024); buffer.put("Hello NIO!".getBytes()); buffer.flip(); channel.write(buffer); channel.close(); } }
上述代碼展示了一個簡單的NIO Socket客戶端,創建SocketChannel時需要設置為非阻塞模式,然后使用connect方法連接到服務器。連接過程是異步的,需要使用finishConnect方法確認連接已經建立。連接成功后可以通過put方法將數據寫入緩存區中,再使用write方法將緩存區中的數據發送到服務端。