1. 程式人生 > >從客戶端的鍵盤錄入字元,如aaa. 伺服器端接收aaa,並在控制檯上列印aaa.然後將其轉換為大寫AAA返回到客戶端, 由客戶端列印到客戶端控制檯上

從客戶端的鍵盤錄入字元,如aaa. 伺服器端接收aaa,並在控制檯上列印aaa.然後將其轉換為大寫AAA返回到客戶端, 由客戶端列印到客戶端控制檯上

伺服器端:

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();
		

	}

}

注意:先啟動伺服器端,再啟動客戶端。最後應該在客戶端的控制檯上輸入字元。