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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于启会 中级黑马   /  2012-9-16 05:39  /  1538 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 于启会 于 2012-9-16 08:46 编辑
  1. <p>package com.users;</p><p>import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.io.PrintWriter;
  5. import java.net.Socket;
  6. import java.net.UnknownHostException;</p><p>public class UsersLogin {
  7. public static void main(String[] args) {
  8.   try {
  9.    Socket s=new Socket("127.0.0.1",9527);
  10.    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  11.    PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
  12.    BufferedReader reader=new BufferedReader(new InputStreamReader(s.getInputStream()));
  13.    for(int i=0;i<3;i++){
  14.     String line=br.readLine();
  15.     if(line==null){
  16.      break;
  17.     }
  18.     pw.println(line);
  19.    
  20.     String read=reader.readLine();
  21.     if(read.contains("欢迎")){
  22.      System.out.println(read);
  23.      break;
  24.     }else{
  25.      System.out.println(read);
  26.     }
  27.    }
  28.    br.close();
  29.    s.close();
  30.   } catch (UnknownHostException e) {
  31.    e.printStackTrace();
  32.   } catch (IOException e) {
  33.    e.printStackTrace();
  34.   }
  35. }
  36. }

  37. package com.users;</p><p>import java.io.IOException;
  38. import java.net.ServerSocket;
  39. import java.net.Socket;</p><p>public class UserService {
  40. public static void main(String[] args) {
  41.   try {
  42.    ServerSocket ss=new ServerSocket(9527);
  43.    while(true){
  44.     Socket s= ss.accept();
  45.     new Thread(new User(s)).start();
  46.    }
  47.   } catch (IOException e) {
  48.    e.printStackTrace();
  49.   }
  50. }
  51. }

  52. package com.users;</p><p>import java.io.BufferedReader;
  53. import java.io.File;
  54. import java.io.FileReader;
  55. import java.io.IOException;
  56. import java.io.InputStreamReader;
  57. import java.io.PrintWriter;
  58. import java.net.Socket;</p><p>public class User implements Runnable{
  59. private Socket s;
  60. public User(Socket s){
  61.   this.s=s;
  62. }
  63. public void run(){
  64.   String ip=s.getInetAddress().getHostAddress();
  65.   try {
  66.    for(int i=0;i<3;i++){
  67.     BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
  68.     PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
  69.     BufferedReader read=new BufferedReader(new FileReader(new File("E:\\学习记录<a href="file://\\User.txt">\\User.txt</a>")));
  70.     boolean bl=false;
  71.     String r_read=null;
  72.     while((r_read=read.readLine())!=null){
  73.      if(br.readLine().equals(r_read)){
  74.       bl=true;
  75.       break;
  76.      }
  77.     }
  78.     if(bl){
  79.      System.out.println(ip+":"+r_read+":登陆成功");
  80.      pw.println(r_read+"欢迎登陆");
  81.      break;
  82.     }else{
  83.      System.out.println(ip+":"+r_read+":尝试登陆");
  84.      pw.println(r_read+"登陆失败");
  85.     }
  86.     read.close();
  87.    }
  88.    s.close();
  89.   } catch (IOException e) {
  90.    e.printStackTrace();
  91.   }
  92.   
  93. }
  94. }
  95. </p>
复制代码
运行在输入的时候回车了  还是继续输入。没找到什么原因,求解

5 个回复

倒序浏览
代码错了,你服务端在那?
回复 使用道具 举报
看错了,正在找原因
回复 使用道具 举报
错误一:
  1. String r_read=null;
  2.     //不能每次循环都读一次br.readLine
  3.     String str = br.readLine();
  4.     while((r_read=read.readLine())!=null){

  5.      if(str.equals(r_read)){//这里改了

  6.       bl=true;

  7.       break;

  8.      }
复制代码
错误二:

  1.      pw.println(r_read+"欢迎登陆");
  2.      pw.flush();//这种输出流操作,一定要记得flush。这里没写的不止一处,自己找找改改吧
复制代码

评分

参与人数 1技术分 +1 收起 理由
黑马_许芸 + 1 赞一个!

查看全部评分

回复 使用道具 举报
张 涛 发表于 2012-9-16 08:31
错误一:错误二:

额    明白了  readLine()在循环中读了多次。。
回复 使用道具 举报
张 涛 发表于 2012-9-16 08:31
错误一:错误二:


错误二不存在,那个流不需要手动刷新
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马