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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gzbbxu 中级黑马   /  2013-6-21 16:36  /  785 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

并发登陆的问题
客户端
  1. 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;  
  7.   
  8.    public class LoginClient{  
  9.    public static void main(String[] args) throws Exception, IOException {  
  10.      Socket s=new Socket("192.168.1.100",10006);  
  11.      BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));  
  12.      PrintWriter out=new PrintWriter(s.getOutputStream(),true);  
  13.      BufferedReader bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));  
  14.      for(int x=0;x<3;x++){  
  15.          String line=bufr.readLine();//读一次   
  16.           if(line==null){  
  17.               break;  
  18.           }  
  19.          out.println(line);//发出去   
  20.          String info=bufin.readLine();//读取服务端的反馈信息   
  21.          
  22.          System.out.println("info:"+info);//打印反馈信息   
  23.          if(info.contains("欢迎")){  
  24.                 break;  
  25.             }  
  26.      }  
  27.      bufr.close();  
  28.      s.close();  
  29.   }  
  30. }  
复制代码
服务端
  1. import java.io.BufferedReader;  
  2. import java.io.FileReader;  
  3. import java.io.IOException;  
  4. import java.io.InputStreamReader;  
  5. import java.io.PrintWriter;  
  6. import java.net.ServerSocket;  
  7. import java.net.Socket;  
  8.   
  9.   
  10. public class LoinServer {  
  11.     public static void main(String[] args) throws Exception {  
  12.         ServerSocket ss=new ServerSocket(10006);  
  13.         while(true){  
  14.             Socket s=ss.accept();  
  15.             new Thread(new UserThread(s)).start();  
  16.         }  
  17.     }   
  18. }  
  19. class UserThread implements Runnable{  
  20.     private Socket s;  
  21.     UserThread(Socket s){  
  22.         this.s=s;  
  23.     }  
  24.     @Override  
  25.     public void run() {  
  26.         // TODO Auto-generated method stub   
  27.         String ip=s.getInetAddress().getHostAddress();  
  28.         System.out.println(ip+"...connected");  
  29.         try{  
  30.             for(int x=0;x<3;x++){  
  31.                 BufferedReader bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));  
  32.                 String name=bufin.readLine();  
  33.                 if(name==null){//客户端ctrl+c停止了   
  34.                     break;  
  35.                 }  
  36.                 BufferedReader bufr=new BufferedReader(new FileReader("c:\\user.txt"));  
  37.                 PrintWriter out=new PrintWriter(s.getOutputStream());  
  38.                 String line=null;  
  39.                 boolean flag=false;  
  40.                 while((line=bufr.readLine())!=null){  
  41.                     if(line.equals(name) ){  
  42.                         flag=true;  
  43.                         break;  
  44.                     }  
  45.                 }  
  46.                 if(flag){  
  47.                     System.out.println(name+",已登录");  
  48.                     out.println(name+",欢迎光临");  
  49.                     break;  
  50.                 }else{  
  51.                     System.out.println(name+",尝试登陆");  
  52.                     out.println(name+",用户名不存在");  
  53.                   
  54.                 }  
  55.             }  
  56.             s.close();  
  57.         }catch(Exception ex){  
  58.             throw new RuntimeException(ip+"校验失败");  
  59.         }  
  60.     }  
  61. }  
复制代码

2 个回复

倒序浏览
在客户端键盘输入后,为什么不提示用户不存在,或者欢迎光临呢?百思不得其解
回复 使用道具 举报
看不明白 绑定一下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马