本文实例为大家分享了java客户端登陆服务器用户名验证的具体实现代码,供大家参考,具体内容如下
客户端通过键盘录入用户名,服务端对用户名进行验证。
如果用户名存在,服务端显示xxx已登录,客户端显示xxx,欢迎登陆。
如果用户名不存在,服务端显示xxx尝试登陆,客户端显示xxx,用户名不存在。
最多登陆三次,防止暴力登陆。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
import java.io.*; import java.net.*; /* *客户端 */ class client { public static void main(String[] args) throws Exception { Socket s = new Socket("192.168.33.1",10008);//建立服务 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));//读取键盘输入用户名 PrintWriter pw = new PrintWriter(s.getOutputStream(),true);//读到数据往服务端写 BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));//将客户端返回的数据读入 for(int x = 0;x < 3; x ++)//只登陆3次设定 { String line = bufr.readLine();//读取用户名 pw.println(line); if(line == null)//为空用户名终止 break; pw.println(line); String info = bufin.readLine();//读取服务端返回的数据 System.out.println("Server info:"+info); if(info.contains("欢迎登陆"))//用户登录终止 break; } bufr.close(); s.close(); } } /* *服务端 */ class ServerThread implements Runnable { private Socket s; ServerThread(Socket s) { this .s = s; } public void run() { String ip = s.getInetAddress().getHostAddress(); System.out.println(ip+ "...........connect" ); try { for ( int x = 0 ;x < 3 ;x ++) { BufferedReader bufin = new BufferedReader( new InputStreamReader(s.getInputStream())); //读取客户端发送的数据 String name = bufin.readLine(); if (name == null ) break ; BufferedReader bufr = new BufferedReader( new FileReader( "user.txt" )); //读取已存入用户账户,本来是读取数据库,这里方便就写了一个文本 PrintWriter out = new PrintWriter(s.getOutputStream(), true ); //写入流,服务端写出 String line = null ; boolean flag = false ; //判断标记 while ((line = bufr.readLine())!= null ) //读取数据库(Use.txt)中数据 { 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+ ":用户名不存在" ); } } s.close(); } catch (Exception e) { throw new RuntimeException( "验证失败" ); } } } class server { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket( 10008 ); //建立服务 while ( true ) { Socket s = ss.accept(); //接收客户端传来数据 new Thread( new ServerThread(s)).start(); //开启线程 } } } |
打印结果:
user.txt
以上就是本文的全部内容,希望对大家的学习有所帮助。