需求
客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串
实现
package cn.giteasy.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;/*** 服务端** 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串* 客户端:cn/giteasy/test/Test01Client.java*/public class Test01Server {public static void main(String[] args) throws IOException {ServerSocket server = new ServerSocket(8888);System.out.println("服务端启动...");while(true) {//接受客户端的请求final Socket socket = server.accept();System.out.println("收到一个请求...");//开启一条线程new Thread() {@Overridepublic void run() {try {BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintStream ps = new PrintStream(socket.getOutputStream());//将客户端写过来的数据读取出来String line = br.readLine();//链式编程反转这符串line = new StringBuilder(line).reverse().toString();//反转后写回去ps.println(line);socket.close();} catch (IOException e) {e.printStackTrace();}}}.start();}}}
package cn.giteasy.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;/*** 客户端:*** 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串** 服务端:cn/giteasy/test/Test02Server.java*/public class Test01Client {public static void main(String[] args) throws UnknownHostException, IOException {Scanner sc = new Scanner(System.in);//创建客户端,指定ip地址和端口号Socket socket = new Socket("localhost", 8888);//获取输出流BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //获取输入流//获取输出流PrintStream ps = new PrintStream(socket.getOutputStream());System.out.println("请录入一个字符串:");//将字符串写到服务器去ps.println(sc.nextLine());//将反转后的结果读出来System.out.println(br.readLine());socket.close();}}
