黑马程序员技术交流社区

标题: 网络编程问题,问题在UserServer注释部分 [打印本页]

作者: ゞ导火索゛    时间: 2014-6-24 17:14
标题: 网络编程问题,问题在UserServer注释部分
本帖最后由 ゞ导火索゛ 于 2014-6-25 19:26 编辑
  1. package com.net;

  2. import java.net.InetAddress;
  3. import java.net.UnknownHostException;

  4. /*
  5. * 需求:通过客户端向浏览器端进行登陆请求,
  6. * 1,定义客户端
  7. * 2,定义键盘录入。通过主函数的参数进行
  8. * 3、将参数写出到服务器端
  9. * 4,接收服务器的响应
  10. */

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

  13. public class UserClient {
  14.         public static void main(String[] args)
  15.         {
  16.                 try
  17.                 {
  18.                         Socket client = new Socket(InetAddress.getByName("172.28.170.51"), 10000);
  19.                         
  20.                         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  21.                         
  22.                         PrintWriter out = new PrintWriter(client.getOutputStream(), true);
  23.                
  24.                         BufferedReader bufIn = new BufferedReader(new InputStreamReader(client.getInputStream()));
  25.                         
  26.                         for(int i=0; i<3; i++)
  27.                         {
  28.                                 String line = bufr.readLine();
  29.                                 
  30.                                 out.println(line);
  31.                                 
  32.                                 String info = bufIn.readLine();
  33.                                 System.out.println("info:" + info);
  34.                                 if(info.contains("成功"))
  35.                                         break;
  36.                         
  37.                         }
  38.         
  39.                         client.close();
  40.                         bufr.close();
  41.                         
  42.                 } catch (UnknownHostException e) {
  43.                         
  44.                         e.printStackTrace();
  45.                 } catch (IOException e) {
  46.                         
  47.                         e.printStackTrace();
  48.                 }
  49.         }
  50.         
  51. }
复制代码
  1. package com.net;

  2. /*
  3. * 需求:
  4. * 1,定义服务器端,
  5. * 2,获取客户端对象
  6. * 3,定义一个线程用于操作多个客户端登陆
  7. * 4,接受客户端的消息,对该user与user.txt中的数据进行遍历比较
  8. * 5,给客户端发送登陆成功或者失败的提示
  9. * 6、 关闭资源
  10. */
  11. import java.io.*;
  12. import java.net.*;

  13. public class UserServer {
  14.         public static void main(String[] args)
  15.         {
  16.                 try
  17.                 {
  18.                         ServerSocket server = new ServerSocket(10000);
  19.                         
  20.                         while(true)
  21.                         {
  22.                                 Socket client = server.accept();
  23.                                 new Thread(new UserThread(client)).start();
  24.                         }
  25.                         
  26.                 } catch (IOException e) {
  27.                
  28.                         e.printStackTrace();
  29.                 }
  30.         }
  31. }

  32. class UserThread implements Runnable
  33. {
  34.         private Socket client ;
  35.         public UserThread(Socket client)
  36.         {
  37.                 this.client = client ;
  38.         }
  39.         public void run()
  40.         {
  41.                 String ip = client.getInetAddress().getHostAddress();
  42.                 System.out.println(ip+".....connected");
  43.         
  44.                 try
  45.                 {
  46.                   <font color="#ff0000">      /*
  47.                          * 这四句放在for循环外面怎么结果不一样,不是很明白,
  48.                          *
  49.                          *         File file = new File("src\\com\\net\\user.txt");
  50.                         
  51.                                 BufferedReader bufr = new BufferedReader(new FileReader(file));
  52.                         
  53.                                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(client.getInputStream()));
  54.                         
  55.                                 PrintWriter out = new PrintWriter(client.getOutputStream(), true);
  56.                          */
  57.                         </font>
  58.                         for(int i=0; i<3; i++)
  59.                         {
  60.                                 
  61.                                 File file = new File("src\\com\\net\\user.txt");
  62.                                 
  63.                                 BufferedReader bufr = new BufferedReader(new FileReader(file));
  64.                                 
  65.                                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(client.getInputStream()));
  66.                                 
  67.                                 PrintWriter out = new PrintWriter(client.getOutputStream(), true);
  68.                                 
  69.                                 //客户端消息
  70.                                 String line = bufIn.readLine();
  71.                                 
  72.                                 //txt中的消息
  73.                                 String name = null;
  74.                                 
  75.                                 boolean flag = false;
  76.                                 
  77.                                 while((name=bufr.readLine())!=null)
  78.                                 {
  79.                                         if(name.equals(line))
  80.                                         {
  81.                                                 flag = true;
  82.                                                 break;
  83.                                         }
  84.                                 }
  85.                                 if(flag)
  86.                                 {
  87.                                         System.out.println(name+",欢迎登陆!!");
  88.                                         out.println(name+",登陆成功");
  89.                                         break;
  90.                                 }
  91.                                 else
  92.                                 {
  93.                                         System.out.println(line+",尝试登陆");
  94.                                         out.println(line + ",该用户不存在");
  95.                                 }
  96.                         }
  97.                         
  98.                         client.close();
  99.                         
  100.                 } catch (IOException e) {
  101.                         
  102.                         e.printStackTrace();
  103.                 }
  104.         }
  105. }
复制代码
问题在UserServer的注释部分







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2