服务端:
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 TestServerMore {
public static void main(String[] args) throws IOException {
//开启服务器
ServerSocket server = new ServerSocket(9980);
boolean flag = true;
while(flag){
//接收客户端的连接
Socket socket = server.accept();
//为每一个客户端创建单独的线程
new Thread(() -> {
try {
//创建输入输出流流
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
//字节字符转换流
InputStreamReader isr = new InputStreamReader(is);
PrintStream ps = new PrintStream(os);
//创建缓冲流,利用其中的readLine()方法
BufferedReader br = new BufferedReader(isr);
handle(ps, br);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//断开连接
if(socket!=null) {
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
server.close();
}
static void handle(PrintStream ps, BufferedReader br) throws IOException {
String word;
while((word = br.readLine()) != null){
//接收到"bye"意味着停止
if("bye".equals(word)){
break;
}
//对数据进行反转处理
StringBuffer sb = new StringBuffer(word);
sb.reverse();
//处理后的数据返回给客户端
ps.println(sb.toString());
}
}
}
客户端
package test;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
/**
* @author WangXuekui
* @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",9980);
//从键盘输入
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();
}
}