java客户端登陆服务器用户名验证

网友投稿 213 2023-07-16


java客户端登陆服务器用户名验证

本文实例为大家分享了java客户端登陆服务器用户名验证的具体实现代码,供大家参考,具体内容如下

客户端通过键盘录入用户名,服务端对用户名进行验证。 

如果用户名存在,服务端显示xxx已登录,客户端显示xxx,欢迎登陆。

如果用户名不存在,服务端显示xxx尝试登陆,客户端显示xxx,用户名不存在。 

最多登陆三次,防止暴力登陆。

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 PrintWriterhttp://(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

以上就是本文的全部内容,希望对大家的学习有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入剖析java中的集合框架
下一篇:Java中Calendar时间操作常用方法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~