使用Socket实现客户端和服务器端的通信,要求客户端发送数据后能够回显相同的数据。
服务器端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Created by Hollake on 2019\7\16 0016 10:16.
*/
public class Server {
public static void main(String[] args) {
BufferedReader br = null;
PrintWriter pw = null;
try {
ServerSocket server = new ServerSocket(2000);
Socket socket = server.accept();
// 获得输入流
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 获得输出流
pw = new PrintWriter(socket.getOutputStream(), true);
String s = br.readLine();//获得接收数据
pw.println(s);//发送相同数据给客户端
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* Created by Hollake on 2019\7\16 0016 10:21.
*/
public class Client {
public static void main(String[] args) {
BufferedReader br = null;
PrintWriter pw = null;
try {
Socket socket = new Socket("127.0.0.1", 2000);
// 获得输入输出流
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(), true);
pw.println("Hello");//向服务器发送数据
String s = null;
while ( true ) {
s = br.readLine();//读取客户端的发送过来的数据
if (s != null) {
break;
}
}
System.out.println(s);//打印接收的数据
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
br.close();
pw.close();
} catch (Exception e) {
}
}
}
}