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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李敬卫 中级黑马   /  2013-1-19 15:25  /  1356 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class UserLoginSocket {
/**
  * @param args
  * @throws Exception
  * @throws UnknownHostException
  */
public static void main(String[] args) throws  Exception {
  // TODO Auto-generated method stub
  Socket s=new Socket("127.0.0.1",10009);
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  PrintWriter out=new PrintWriter(s.getOutputStream());
  
  BufferedReader brin=new BufferedReader(new InputStreamReader(s.getInputStream()));
  for(int x=0;x<3;x++){
   String line=br.readLine();
   if(line.equals(null))
    break;
   out.println(line);
   
   String returnInfo=brin.readLine();
   System.out.println("服务端返回的信息是:"+returnInfo);
   if(returnInfo.contains("欢迎"))
    break;
  }
  br.close();
  s.close();
  }
}

public class UserLoginServer implements Runnable{
private Socket s;
public UserLoginServer(Socket s){
this.s=s;
}
@Override
public void run() {
  // TODO Auto-generated method stub
  String ip=s.getInetAddress().getHostAddress();
  System.out.println(ip+"........已连接上");

  try{
   for(int x=0;x<3;x++){
  
   BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));
   String name=br.readLine();
   if(name==null)
    break;
   
   PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
   
   BufferedReader brFile=new BufferedReader(new FileReader("E:\\UserLogin.txt"));   
   String line=null;
   boolean flag=false;
   while((line=brFile.readLine())!=null){
    if(line.equals(name)){
     flag=true;
     break;
    }
   }
   if(flag){
    System.out.println(name+",已登录");
    pw.write(name+"欢迎光临");
   }else{
    System.out.println(name+",尝试登陆");
    pw.write(name+",用户名不存在");
   }
   }
   s.close();
  }catch(Exception e){
   throw new RuntimeException(ip+"校验失败");
  }
  
}
public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  ServerSocket ss=new ServerSocket(10009);
  while(true){
   Socket s=ss.accept();
   new Thread(new UserLoginServer(s)).start();
  }
}
}

请各位看一下这是什么原因?

2 个回复

正序浏览
调试了下你的程序,{:soso__6235880048239246314_3:}
PrintWriter out=new PrintWriter(s.getOutputStream(),true); 此句少加true,println方法不能刷新  
服务器里的 倒是ture了 但用
pw.write(name+",用户名不存在"); 方法,不具备自动刷新
回复 使用道具 举报
  1. catch(Exception e){
  2.     throw new RuntimeException(ip+"校验失败");
  3.    }
复制代码
这是你自己定义的异常处理方法的结果

如果想看异常的具体信息,建议在抛出之前,先加个e.printStackTrace(),看看具体是哪一行出问题了。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马