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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

  6. 如果该用户不存在,在服务端显示XXX,尝试登陆
  7. 并在客户端显示XXX,改用户不存在

  8. 最多登陆三次

  9. */
  10. import java.io.*;
  11. import java.net.*;
  12. class  TCPClints1
  13. {
  14.         public static void main(String[] args) throws Exception                //用户端
  15.         {
  16.                 Socket s = new Socket("192.168.1.103",10006);
  17.                 BufferedReader bufr =                                                                        //键盘录入用户名
  18.                         new BufferedReader(new InputStreamReader(System.in));
  19.                
  20.                 PrintWriter out = new PrintWriter(s.getOutputStream());        //获取网络中的输出流

  21.                 BufferedReader bufIn =                                                                                //获取网络中的输入流
  22.                         new BufferedReader(new InputStreamReader(s.getInputStream()));

  23.                 for (int x = 0; x<3;x++ )                                //只允许用户输入三次,三次不对那么跳出循环,不再录入
  24.                 {
  25.                         String line = bufr.readLine();
  26.                         out.println(line);

  27.                         String str = bufIn.readLine();                        //获取服务端返回来的信息
  28.                         System.out.println("str:"+str);

  29.                 }

  30.                
  31.                
  32.         }
  33. }
  34. class  TCPServer1        //服务端
  35. {
  36.         public static void main(String[] args) throws Exception
  37.         {
  38.                 ServerSocket ss = new ServerSocket(10006);
  39.                 while(true)
  40.                 {       
  41.                         Socket s = ss.accept();
  42.                         new Thread(new TCPThread(s)).start();                //创建不同用户访问服务端线程
  43.                 }
  44.         }
  45. }
  46. class TCPThread implements Runnable                //服务端多线程,用于多个用于访问服务端
  47. {
  48.         private Socket s;
  49.         TCPThread(Socket s)
  50.         {
  51.                 this.s = s;
  52.         }
  53.         public void run()
  54.         {
  55.                 try
  56.                 {
  57.                         for (int x=0;x<3 ; x++)
  58.                         {
  59.                                 BufferedReader bufrd = new BufferedReader(new FileReader("d:\\用户名.txt"));                //读取允许登陆的配置用户文件

  60.                                 BufferedReader bufr = new BufferedReader(new InputStreamReader(s.getInputStream()));        //获取网络中的输入流

  61.                                 PrintWriter pw = new PrintWriter(s.getOutputStream());                //获取网络中的输出流,并且自动刷新
  62.                                                                        

  63.                                 String name = bufr.readLine();
  64.                                 String line = null;
  65.                                 boolean flag = false;
  66.                                 while((line=bufrd.readLine())!=null)
  67.                                 {

  68.                                         if(name.equals(line))                        //将用户输入的用户名循环比较配置文件,如果有相同的用户名,则标记为true,并跳出循环
  69.                                         {
  70.                                                 flag = true;
  71.                                                 break;
  72.                                         }
  73.                                 }
  74.                                 if(flag)
  75.                                 {
  76.                                         System.out.println(name+",已登陆");
  77.                                         pw.write(name+",欢迎访问");
  78.                                         break;
  79.                                 }
  80.                                 else
  81.                                 {
  82.                                         System.out.println(name+",尝试登陆");
  83.                                         pw.write(name+",用户名不存在");       
  84.                                 }

  85.                         }
  86.                         s.close();
  87.                        
  88.                        
  89.                 }
  90.                 catch (Exception e)
  91.                 {

  92.                 }
  93.                
  94.         }
  95. }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马