java代码简单实现循环执行客户端和服务端交流【Scanner】、当输入exit退出
时间: 2023-12-24 16:04:17 浏览: 31
以下是一份简单的 Java 代码,实现了客户端和服务端之间的交流,使用了 Scanner 类来接收用户输入,并通过循环来实现持续交流。当用户输入 "exit" 时,程序会退出。
服务端代码:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(1234);
System.out.println("Server started.");
Socket socket = serverSocket.accept();
System.out.println("Client connected.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
Scanner scanner = new Scanner(System.in);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Client: " + inputLine);
if (inputLine.equals("exit")) {
break;
}
System.out.print("Server: ");
String response = scanner.nextLine();
out.println(response);
if (response.equals("exit")) {
break;
}
}
System.out.println("Server shutting down.");
serverSocket.close();
socket.close();
scanner.close();
}
}
```
客户端代码:
```java
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 1234);
System.out.println("Connected to server.");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
Scanner scanner = new Scanner(System.in);
String inputLine;
while (true) {
System.out.print("Client: ");
inputLine = scanner.nextLine();
out.println(inputLine);
if (inputLine.equals("exit")) {
break;
}
String response = in.readLine();
System.out.println("Server: " + response);
if (response.equals("exit")) {
break;
}
}
System.out.println("Client shutting down.");
socket.close();
scanner.close();
}
}
```
在运行这份代码时,您需要先启动服务器,再启动客户端。在客户端输入数据后,会将数据发送给服务器并等待服务器的响应,然后再输出服务器的响应。当输入 "exit" 时,程序会退出。