运行时候要2个java文件一起运行,先服务端后客户端。
服务端
ServerDemo.java
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class ServerDemo {
public static void main(String[] args) {
try (ServerSocket server = new ServerSocket(8081);
Socket socket = server.accept();
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
Scanner input = new Scanner(System.in);) {
System.out.println("客户端:" + is.readLine()); // 显示从客户端读的数据
System.out.print("服务器端:");
String line = input.nextLine(); // 从键盘读一行数据
while (!line.equals("bye")) {
os.println(line); // 将数据发送到客户端
os.flush();
System.out.println("客户端:" + is.readLine()); // 显示从客户端读的数据
System.out.print("服务器端:");
line = input.nextLine(); // 从键盘读一行数据
}
} catch (Exception e) {
System.out.println("发生异常:" + e);
}
}
}
客户端
ClientDemo.java
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class ClientDemo {
public static void main(String[] args) {
try (Socket socket = new Socket("127.0.0.1", 8081);
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream());
Scanner input = new Scanner(System.in);) {
System.out.print("客户端:");
String line = input.nextLine(); // 从键盘读一行数据
while (!line.equals("bye")) {
os.println(line); // 将数据发送到服务器
os.flush();
// 输出从服务器端读的一行数据
System.out.println("服务器端:" + is.readLine());
System.out.print("客户端:");
line = input.nextLine(); // 从键盘读一行数据
}
} catch (Exception e) {
System.out.println("发生异常:" + e);
}
}
}