import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class TwoWaySocketServer {
public static void main(String[] args) {
System.out.println("开始监听......8888");
try(ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
Scanner scanner = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(socket.getOutputStream());
){
while (true){
String str = br.readLine();
if("exit".equals(str)){
break;
}
System.out.println("客户端说:"+str);
String keybord = scanner.nextLine();
pw.println(keybord);
pw.flush();
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
客户端代码:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class TwoWaySocketClient {
public static void main(String[] args) {
System.out.println("这里是客户端 正在执行发送消息");
try(Socket socket = new Socket("127.0.0.1",8888);
Scanner scanner = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter pw = new PrintWriter(socket.getOutputStream());
){
while (true){
String str = scanner.nextLine();
System.out.println("客户端说:"+str);
//从客户端向服务端发送信息
pw.println(str);
pw.flush();
//接收服务端发送过来的信息
String serverinfor = br.readLine();
System.out.println("服务器说:"+serverinfor);
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
效果如图: