java客户端登陆服务器用户名验证_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 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

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java用户名验证
客户端验证服务器证书、java服务器端和客户端、java服务器客户端、java客户端与服务器、java获取客户端用户名,以便于您获取更多的相关知识。

时间: 2024-11-01 13:15:39

java客户端登陆服务器用户名验证_java的相关文章

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

[java] view plain copy  print? /*  客户端通过键盘录入用户名.  服务端对用户名进行验证.    如果用户名存在,服务端显示xxx已登录,客户端显示xxx,欢迎登陆.  如果用户名不存在,服务端显示xxx尝试登陆,客户端显示xxx,用户名不存在.    最多登陆三次,防止暴力登陆.  */   import java.io.*;   import java.net.*;   /*  *客户端  */   class  client   {       publi

java 客户端 服务器-java客户端和服务器通信

问题描述 java客户端和服务器通信 1C try{ Socket s=new Socket(""127.0.0.1""9997); System.out.println(s); InputStreamReader isr=new InputStreamReader(s.getInputStream()); br=new BufferedReader(isr);//接受客户端的消息 pw =new PrintWriter(s.getOutputStream()tru

Java连接ftp服务器实例代码_java

废话不多说了,直接给大家贴java代码了. import java.io.IOException; import sun.net.TelnetInputStream; import sun.net.ftp.FtpClient; public class MyFtp { static FtpClient myFtp; static String hostname; static String username; static String password; /** * @author cutel

客户端和服务器的中间件是什么

问题描述 客户端和服务器的中间件是什么 课程设计,老师让我们设计一个客户端服务器模式(CS)的程序,要求有一个中间件,因为不让直接用客户端连接服务器. 老师说中间件就像一个网关,可以弄的简单点,但是我平常弄的都是直接在客户端登陆服务器修改服务器的数据,不知道 这个中间件该做什么,该怎么做.我想问下,这个中间件应该怎么弄,大概意思说下就可以. 谢谢. 解决方案 中间间网关,其实就是在客户端和服务器中间的一种服务器,他提供透传的功能,即服务器和客户端的交互比较通过gate中转. 通常只有网关有外网I

App登陆java后台处理和用户权限验证_java

最近做一个app项目,后台我独自一人开发,开发任务顺序安排上没有把登陆,注册和权限验证这些基本功能放在第一阶段开发,现在是部分业务相关功能已经完成,但是用户入口竟然还没有,只能说明当初需求分析的时候还是太过于着急了,把最基本的用户入口给放到后面了. 现在就需要在现有代码的基础上添加用户登录和权限验证功能. 关于登录和权限验证方面,参照以前做iOS的开发经验,App端提供用户名和密码换取token,每次通过换取的token请求需要登陆权限的操作. 现在反过来,我就需要考虑下面几个问题: 1.在现有

用AJAX实现页面登陆以及注册用户名验证的简单实例_AJAX相关

AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX 是一种用于创建快速动态网页的技术.其核心是 JavaScript 对象 XMLHttpRequest.该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术.简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户. 通过在后台与

基于Ajax用户名验证、服务条款加载、验证码生成的实现方法_java

 Ajax(asynchronous javascript and xml)异步的javascript和xml.     是为了解决传统的web应用中"发送请求-等待响应"这种模式的弊端,(浏览器在发送完请求后,只能等待服务器的响应,用户不能做其他的操作,浏览器发送完请求,会抛弃整个页面,等待服务器返回新的页面,也就是说,浏览器和服务器之间交互的数据量很大,不能做到按需获取数据)而创建的技术,该技术的本质是:通过一个浏览器内置的一个对象(XmlHttpRequest)异步地向服务器发送

用AJAX实现页面登陆以及注册用户名验证的简单实例

AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX 是一种用于创建快速动态网页的技术.其核心是 JavaScript 对象 XMLHttpRequest.该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术.简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户. 通过在后台与

Linux 客户端配置 Kerberos 身份验证的 NFS 服务器步骤

如果你需要为一组类 Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS. 在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程.假设你已经配置好了一个 NFS 服务器和一个客户端.如果还没有,可以参考 安装和配置 NFS 服务器 - 它列出了需要安装的依赖软件包并解释了在进行下一步之前如何在服务器上进行初始化配置. 另外,你可能还需要配置 SELinux 和 firewalld 以允许通过 NFS 进行文件共享. 下面的例子假设你的 NFS