服务器端:
package test;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author Cris
* @version 1.0
* @className TestServer
* @description <功能描述>
* @date 2020/1/24 14:53
*/
public class TestServer {
public static void main(String[] args) throws IOException {
/**
* 1、接收客户端的连接
* 2、接收客户端的数据
* 3、发送反转之后的数据
* 4、循环2-3
* 5、断开连接
*/
//开启服务器
ServerSocket server = new ServerSocket(9989);
//接收客户端的连接
Socket socket = server.accept();
//创建输入输出流流
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
//字节字符转换流
InputStreamReader isr = new InputStreamReader(is);
PrintStream ps = new PrintStream(os);
//创建缓冲流,利用其中的readLine()方法
BufferedReader br = new BufferedReader(isr);
String word;
while((word = br.readLine()) != null){
//接收到"bye"意味着停止
if("bye".equals(word)){
break;
}
//对数据进行反转处理
StringBuffer sb = new StringBuffer(word);
sb.reverse();
//处理后的数据返回给客户端
ps.println(sb.toString());
}
//断开连接
socket.close();
server.close();
}
}
客户端
package test;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
/**
* @author Cris
* @version 1.0
* @className TestClient
* @description <功能描述>
* @date 2020/1/24 14:53
*/
public class TestClient {
public static void main(String[] args) throws IOException {
/**
* 1、从键盘输入词语
* 2、发送给服务器
* 3、接收服务器处理后的数据
* 4、重复1-3,直到发送bye
* 5、断开连接
*/
//连接服务器
Socket socket = new Socket("192.168.31.195",9989);
//从键盘输入
Scanner scanner = new Scanner(System.in);
//输出流
PrintStream ps = new PrintStream(socket.getOutputStream());
//输入流
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while(true){
System.out.println("请输入词语:");
String word = scanner.next();
ps.println(word);
if("bye".equals(word)){
break;
}
System.out.println("服务器返回的结果:"+br.readLine());
}
//断开连接
scanner.close();
socket.close();
}
}
测试结果: