java模拟服务器 客户端用户登录,预设用户数据,提示登录成功或不成功的原因
时间: 2024-03-16 20:43:19 浏览: 15
好的,以下是一个简单的 Java 代码示例,用于模拟服务器和客户端之间的用户登录,并验证用户名和密码是否正确。
服务器端代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 预设用户数据
String username = "user123";
String password = "pass123";
// 接收客户端发送的用户名和密码
String inputUsername = in.readLine();
String inputPassword = in.readLine();
// 验证用户名和密码是否正确
if (inputUsername.equals(username) && inputPassword.equals(password)) {
out.println("登录成功!");
} else {
out.println("用户名或密码错误,请重新输入!");
}
// 关闭连接
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
客户端代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
System.out.println("已连接服务器:" + socket.getInetAddress().getHostAddress());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
// 发送用户名和密码给服务器
out.println("user123");
out.println("pass123");
// 接收服务器返回的登录结果
String result = in.readLine();
System.out.println("登录结果:" + result);
// 关闭连接
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先启动了服务器并等待客户端连接。然后,服务器预设了一个用户名和密码,接收客户端发送的用户名和密码,并将其与预设的用户名和密码进行比较。如果用户名和密码匹配,则向客户端发送“登录成功!”;否则,向客户端发送“用户名或密码错误,请重新输入!”。
客户端连接服务器后,将用户名和密码发送给服务器,并等待服务器返回的登录结果。如果服务器返回“登录成功!”则输出登录结果;否则,输出错误信息。
当然,这只是一个简单的示例,实际的服务器和客户端之间的用户登录可能需要更复杂的逻辑和更安全的验证方式。