1. 程式人生 > 實用技巧 >Java基礎學習03--BIO基本使用

Java基礎學習03--BIO基本使用

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 }