天天看點

從用戶端的鍵盤錄入字元,如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();
		

	}

}
           

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

繼續閱讀