day24/TcpUserLogin.java

来源:互联网 发布:python while循环游戏 编辑:程序博客网 时间:2024/05/16 15:50
/*需求:客户端通过键盘录入用户名。服务端对这个用户名进行校验。如果该用户存在,在服务端显示 xxx,已登陆并在客户端显示 xxx,欢迎光临如果该用户不存在,在服务显示 xxx,尝试登陆并在客户端显示 xxx,该用户不存在。最多登陆三次。*/import java.io.*;import java.net.*;class LoginClient{public static void main(String[] args) throws Exception{Socket s = new Socket("192.168.1.100",10011);BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bufwOut = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));BufferedReader bufrIn = new BufferedReader(new InputStreamReader(s.getInputStream()));String line=null;for(int x=0;x<3;x++){line = bufr.readLine();if(line==null)//当客户端输入ctrl+c组合键时break;bufwOut.write(line);bufwOut.newLine();bufwOut.flush();String info=bufrIn.readLine();System.out.println("info:"+info);if(info.contains("欢迎"))//如果登陆成功,就不再读取键盘录入break;}bufr.close();s.close();}}class LoginServer{public static void main(String[] args) throws Exception{ServerSocket ss = new ServerSocket(10011);while(true){Socket s = ss.accept();new Thread(new UserLogin(s)).start();}}}class UserLogin implements Runnable{private Socket s;UserLogin(Socket s){this.s=s;}public void run(){String ip = s.getInetAddress().getHostAddress();System.out.println(ip+"...connected");try{BufferedReader bufrIn = new BufferedReader(new InputStreamReader(s.getInputStream()));PrintWriter out = new PrintWriter(s.getOutputStream(),true);for(int x=0;x<3;x++){BufferedReader bufr = new BufferedReader(new FileReader("sql.txt"));//该文件流要放在循环里面,String line = bufrIn.readLine();if(line==null)//当客户端输入ctrl+c组合键时break;String name = null;boolean flag=false;while((name=bufr.readLine())!=null)//第一次读取键盘录入时,文件已读到了末尾   //放在循环里面的文件流,就能保证文件重新从第一行读,所以第二、三次读取键盘录入{if(name.equals(line)){flag=true;break;}}if(flag==true){System.out.println(line+",已登陆");out.println(line+",欢迎光临");bufr.close();break;}else{System.out.println(line+",尝试登陆");out.println(line+",该用户不存在");}bufr.close();}s.close();}catch (Exception e){throw new RuntimeException("检验失败");}}}

0 0
原创粉丝点击