JavaSE:網路程式設計收發資訊
阿新 • • 發佈:2021-07-01
<1>客戶端
1 import java.io.IOExcepiton; 2 3 import java.net.InetSocketAddress; 4 5 import java.nio.ByteBuffer; 6 7 import java.nio.channels.SocketChannel; 8 9 10 11 public class Demo客戶端 { 12 13 main() throws IOException { 14 15 16 17 // 建立客戶端 18 SocketcChannel sc = SocketChannel.open();19 20 21 // 指定要連線的伺服器ip和埠 22 sc.connect(new InetSocketAddress("127.0.0.1",9000)); 23 24 25 // 建立緩衝輸出 26 ByteBuffer buffer = ByteBuffer.allocate(1024); 27 28 29 30 // 給陣列新增資料 31 32 buffer.put("哈哈哈".getBytes()); 33 34 35 36 // 切換 37 38 buffer.flip(); 39 40 41 42 // 輸出資料43 44 sc.write(buffer); 45 46 47 48 // 關閉資源 49 50 sc.close(); 51 } 52 53 }
<2> 伺服器端
1 import java.io.IOException; 2 3 import java.net.InetSocketAddress; 4 5 import java.nio.ByteBuffer; 6 7 import java.nio.channels.ServerSocketChannel; 8 9 import java.nio.channels.SocketChannel;10 11 12 13 public class Demo服務端 { 14 15 // 阻塞的 16 17 main() throws IOException { 18 19 20 21 // 建立伺服器物件 22 23 ServerSocketChannel ssc = ServerSocketChannel.open(); 24 25 26 27 // 繫結埠號 28 ssc.bind(new InetSocketAddress(9000)); 29 30 // 連線客戶端 31 SocketChannel sc = ssc.accept(); 32 33 34 // 建立緩衝陣列 35 ByteBuffer buffer = ByteBuffer.allocate(1024); 36 37 38 // 讀取資料 39 int len = sc.read(buffer); 40 41 42 // 列印 43 System.out.println(new String(buffer.array(),0,len)); 44 45 } 46 47 }