Java基礎學習03--BIO基本使用
阿新 • • 發佈:2020-12-19
1.單服務端,單客戶端的Sokect通訊:
Server端:
1 package socket.demo.singlethread; 2 3 import java.io.BufferedReader; 4 import java.io.InputStream; 5 import java.io.InputStreamReader; 6 import java.net.ServerSocket; 7 import java.net.Socket; 8 9 public class Server { 10 public static void main(String[] args) {11 try { 12 //1.定義一個ServerSocket物件進行服務端的埠註冊 13 ServerSocket serverSocket = new ServerSocket(9999); 14 15 //2.監聽客戶端的sokcet連結請求 16 Socket socket = serverSocket.accept(); 17 18 //3.從客戶端得到一個位元組輸入流物件 19 InputStream inputStream = socket.getInputStream();20 21 //4.把位元組輸入流包裝成緩衝位元組輸入流 22 //BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); 23 24 //4.把位元組輸入流包裝成緩衝位元組輸入流 25 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 26 String msg;27 while ((msg = bufferedReader.readLine()) != null) { 28 System.out.println("服務端接收到:" + msg); 29 } 30 } catch (Exception e) { 31 e.printStackTrace(); 32 } 33 } 34 }
Client端:
1 package socket.demo.singlethread; 2 3 import java.io.IOException; 4 import java.io.OutputStream; 5 import java.io.PrintStream; 6 import java.net.Socket; 7 8 public class Client { 9 public static void main(String[] args) throws IOException { 10 //1.建立Sokcet物件請求服務端 11 Socket socket = new Socket("127.0.0.1", 9999); 12 13 //2.從Socket物件中獲取一個位元組輸出流 14 OutputStream outputStream = socket.getOutputStream(); 15 16 //3.把位元組輸出流包裝成列印流 17 PrintStream printStream = new PrintStream(outputStream); 18 19 //列印 20 printStream.println("hello world"); 21 22 //重新整理 23 printStream.flush(); 24 } 25 }