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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ㄗ灬Night|K 中级黑马   /  2013-10-8 18:45  /  2385 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ㄗ灬Night|K 于 2013-10-9 10:59 编辑

在毕老师24天第三节课的程序中,在程序第89行是如何判断flag为true的,脑子有点转不过来了.......
  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("192.168.1.254",10008);

  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.                                 if(name==null)
  55.                                         break;

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

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

  58.                                 String line = null;

  59.                                 boolean flag = false;
  60.                                 while((line=bufr.readLine())!=null)
  61.                                 {
  62.                                         if(line.equals(name))
  63.                                         {
  64.                                                 flag = true;
  65.                                                 break;
  66.                                         }                                
  67.                                 }
  68.                                 
  69.                                 if(flag)
  70.                                 {
  71.                                         System.out.println(name+",已登录");
  72.                                         out.println(name+",欢迎光临");
  73.                                         break;
  74.                                 }
  75.                                 else
  76.                                 {
  77.                                         System.out.println(name+",尝试登录");
  78.                                         out.println(name+",用户名不存在");
  79.                                 }


  80.                         }
  81.                         s.close();
  82.                 }
  83.                 catch (Exception e)
  84.                 {
  85.                         throw new RuntimeException(ip+"校验失败");
  86.                 }
  87.         }
  88. }
  89. class  LoginServer
  90. {
  91.         public static void main(String[] args) throws Exception
  92.         {
  93.                 ServerSocket ss = new ServerSocket(10008);

  94.                 while(true)
  95.                 {
  96.                         Socket s = ss.accept();

  97.                         new Thread(new UserThread(s)).start();
  98.                 }
  99.         }
  100. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
To 金牌黑马 2013-10-8 18:59:27
沙发
定义标记。使程序有结束的条件。这是一种思想。
就想理解当初毕老师讲的大全套小圈一样去理解。把他当做一种解决思想。
我这么理解。片面之间。希望有用
回复 使用道具 举报
while((line=bufr.readLine())!=null)
                                {
                                        if(line.equals(name))
                                        {
                                                flag = true;
                                                break;
                                        }                                
                                }
80行开始,这里是用来判断flag的,根据你键盘输入的名字,服务端收到后和txt中存好的名字进行比较,利用readLine方法一行一行的比,如果有相等的吗,那就是flag为ture

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
if(条件是布尔类型)
只要是布尔类型就可以,flag本来就是布尔类型,所以可以直接写到里面
回复 使用道具 举报
To 金牌黑马 2013-10-9 08:43:38
报纸
如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马