A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

  1. /*
  2. 客户端通过键盘录入用户名。
  3. 服务端对这个用户名进行校验。

  4. 如果该用户名存在,在服务端显示xxx,已登录。
  5. 并在客户端显示  xxx,欢迎光临。

  6. 如果该用户不存在,在服务端显示xxx,尝试登录。
  7. 并在客户端显示  xxx,该用户不存在。

  8. 最多就登录三次。
  9. */


  10. import java.io.*;
  11. import java.net.*;


  12. class  LoginClient
  13. {
  14.         public static void main(String[] args) throws Exception
  15.         {
  16.                 Socket s = new Socket("222.199.193.28",10009);

  17.                 BufferedReader bufr =
  18.                         new BufferedReader(new InputStreamReader(System.in));

  19.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);

  20.                 BufferedReader bufIn =
  21.                         new BufferedReader(new InputStreamReader(s.getInputStream()));

  22.                 for (int x=0;x<3 ;x++ )
  23.                 {
  24.                         String line = bufr.readLine();
  25.                         if (line == null)
  26.                                 break;

  27.                         out.println(line);

  28.                         String info = bufIn.readLine();
  29.                         System.out.println("info:"+info);
  30.                         if (info.contains("欢迎"))
  31.                                 break;

  32.                 }
  33.                 bufr.close();
  34.                 s.close();
  35.         }
  36. }

  37. class UserThread implements Runnable
  38. {
  39.         private Socket s;
  40.         UserThread(Socket s)
  41.         {
  42.                 this.s=s;
  43.         }
  44.         public void run()
  45.         {
  46.                 String ip = s.getInetAddress().getHostAddress();
  47.                 System.out.println(ip+"......connected");
  48.                 try
  49.                 {
  50.                         for (int x=0;x<3 ;x++ )
  51.                         {
  52.                                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
  53.                                 String name = bufIn.readLine();

  54.                                 BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));

  55.                                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);

  56.                                 String line = null;
  57.                                 boolean flag = false;
  58.                                 while ((line=bufr.readLine())!=null)
  59.                                 {
  60.                                         if (line.equals(name))
  61.                                         {
  62.                                                 flag = true;
  63.                                                 break;
  64.                                         }
  65.                                 }
  66.                                 if (flag)
  67.                                 {
  68.                                         System.out.println(name+",已登录");
  69.                                         out.println(name+",欢迎光临");
  70.                                         break;
  71.                                 }
  72.                                 else
  73.                                 {
  74.                                         System.out.println(name+",尝试登录");
  75.                                         out.println(name+",用户名不存在");
  76.                                         break;
  77.                                 }
  78.                         }
  79.                         s.close();
  80.                 }
  81.                 catch (Exception e)
  82.                 {
  83.                         throw new RuntimeException(ip+"校验失败");
  84.                 }
  85.                
  86.         }
  87. }




  88. class LoginServer
  89. {
  90.         public static void main(String[] args)throws Exception
  91.         {
  92.                 ServerSocket ss = new ServerSocket(10009);

  93.                 while (true)
  94.                 {
  95.                         Socket s = ss.accept();
  96.                         new Thread(new UserThread(s)).start();
  97.                 }
  98.         }
  99. }
复制代码
您需要登录后才可以回帖 登录 | 加入黑马