從客戶端的鍵盤錄入字元,如aaa. 伺服器端接收aaa,並在控制檯上列印aaa.然後將其轉換為大寫AAA返回到客戶端, 由客戶端列印到客戶端控制檯上
阿新 • • 發佈:2018-12-06
伺服器端:
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class TransServer { public static void main(String[] args) throws Exception { /* * 轉換伺服器端 * 1.serversocket物件 * 2.獲取socket物件 * 3.源:讀取客戶端傳送過來的需要轉換的資料 * 4.目的:顯示在控制檯上 * 5.將資料轉成大寫發給客戶端 * */ //1. ServerSocket ss = new ServerSocket(6666); //2.獲取socket物件 Socket s = ss.accept(); //獲取ip String ip = s.getInetAddress().getHostAddress(); System.out.println(ip+"...connected"); //3.獲取socket物件的讀取流,並裝飾 BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); //4.獲取socket物件的輸出流,並裝飾 PrintWriter out = new PrintWriter(s.getOutputStream(),true); String line = null; while((line=br.readLine())!=null){ System.out.println(line); out.println(line.toUpperCase()); out.flush(); } br.close(); out.close(); s.close(); ss.close(); } }
客戶端:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; public class TransClient { public static void main(String[] args) throws Exception, IOException { /** * 客戶端: * 1.需要先有socket客戶端 * 2.客戶端的資料來源 鍵盤 * 3.客戶端的目的 socket * 4.接收伺服器的資料 源 socket * 5.將資料列印在控制檯 * 6.在這些流中操作的資料,都是文字資料 * * */ //1.建立socket物件 Socket s = new Socket(InetAddress.getLocalHost(), 6666); //2.獲取鍵盤錄入 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //3.獲取socket輸出流 PrintWriter pw = new PrintWriter(s.getOutputStream(), true); //4.獲取socket輸入流 讀取伺服器端返回的大寫資料 BufferedReader br1 = new BufferedReader(new InputStreamReader(s.getInputStream())); String line=null; while((line=br.readLine())!=null){ //傳送 pw.println(line); pw.flush(); //接收 String str = br1.readLine(); System.out.println(str); } s.close(); } }
注意:先啟動伺服器端,再啟動客戶端。最後應該在客戶端的控制檯上輸入字元。