Java語言,基於TCP編寫一個簡單的Client/Server 網路應用程式。
阿新 • • 發佈:2019-01-01
要求實現客戶向伺服器傳輸任意一個字串,伺服器將收到的字串變換成大寫後傳回客戶。
//客戶端: package tcpClient; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.Socket; public class tcpClient { private static Socket clientSocket; public static void main(String args[]) throws Exception { String sentence; // 宣告字串變數用於儲存字串輸入和傳送 String modifiedSentence;// 從伺服器得到,並送到使用者標準輸出 System.out.println("請輸入要轉換的字串:"); clientSocket = new Socket("localhost", 8579); // clientSocket為定義的套接字 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));// 建立inFromUser程式的輸入流 DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());//將流連線到標準輸入 BufferedReader inFromServer =new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));//連線套接字的輸入流 sentence = inFromUser.readLine();//將使用者輸入的一行讀入到sentence中 outToServer.writeBytes(sentence + '\n'); // outToServer程式的輸出流 modifiedSentence = inFromServer.readLine();// 當到達伺服器時,他們進入modifiedSentence字串中 System.out.println("FROM SERVER:" + modifiedSentence);// 將伺服器返回來的modifiedSentence輸出顯示 clientSocket.close();// 關閉套接字,tcp連線也隨之關閉 } } //伺服器端: package tcpServer; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; class server { private static ServerSocket welcomeSocket; public static void main(String argv[]) throws Exception { String clientSentence;//宣告字串變數用於儲存字串輸入和傳送 String capitalizedSentence; // 從客戶端得到 welcomeSocket = new ServerSocket(8579);// 建立welcomeSocket物件,在8579埠進行監聽 while (true) { Socket connectionSocket = welcomeSocket.accept();//獲取從客戶端傳來的字元 BufferedReader infromClient = new BufferedReader( new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outToClient =new DataOutputStream(connectionSocket.getOutputStream());// outToClient程式的輸出流 clientSentence = infromClient.readLine();//把使用者輸入的送入clientSentence中 capitalizedSentence = clientSentence.toUpperCase() + '\n';// 將傳送行中的小寫轉換成大寫 outToClient.writeBytes(capitalizedSentence); } } }