客户端通过键盘录入用户名,服务端对这个用户名进行校验。
如果该用户存在,在服务端显示xxx,已登录,并在客户端显示xxx,欢迎光临。
如果该用户存在,在服务端显示xxx,尝试登录,并在客户端显示xxx,该用户不存在。
最多登录三次。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class LoginClient {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("192.168.1.6", 10008);
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
for (int x = 0; x < 3; x++) {
String line = bufr.readLine();
if (line == null) {
break;
}
out.println(line);
String info = bufIn.readLine();
System.out.println("info:" + info);
if (info.contains("欢迎")) {
break;
}
}
bufr.close();
socket.close();
}
}
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class UserThread implements Runnable {
private Socket socket;
public UserThread(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
String ip = socket.getInetAddress().getHostAddress();
try {
for (int i = 0; i < 3; i++) {
BufferedReader bufIn = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String name = bufIn.readLine();
if (name == null) {
break;
}
BufferedReader bufr = new BufferedReader(new FileReader("E:\\user.txt"));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String line;
boolean flag = false;
while ((line = bufr.readLine()) != null) {
if (line.equals(name)) {
flag = true;
break;
}
}
if (flag) {
System.out.println(name + "已登录");
out.println(name + "欢迎光临");
break;
} else {
System.out.println(name + "尝试登录");
out.println(name + "用户名不存在");
}
}
socket.close();
} catch (Exception e) {
throw new RuntimeException(ip + "校验失败");
}
}
}
import java.net.ServerSocket;
import java.net.Socket;
public class LoginServer {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(10008);
Socket accept = server.accept();
new Thread(new UserThread(accept)).start();
}
}











网友评论