zoukankan      html  css  js  c++  java
  • 网络编程(TCP-客户端并发登录)

      1 package netTest;
      2 
      3 import java.io.BufferedReader;
      4 import java.io.FileReader;
      5 import java.io.IOException;
      6 import java.io.InputStreamReader;
      7 import java.io.PrintWriter;
      8 import java.net.ServerSocket;
      9 import java.net.Socket;
     10 
     11 public class LoginServer {
     12 
     13     public static void main(String[] args) throws Exception {
     14         // TODO Auto-generated method stub
     15         ServerSocket ss = new ServerSocket(10003);
     16         // 或取多个客户端需要用到线程
     17         while(true){
     18             Socket s = ss.accept();
     19             new Thread(new  UserThread(s)).start();
     20         }
     21     }
     22 
     23 }
     24  class UserThread implements Runnable {
     25     private Socket s;
     26     UserThread(Socket s){
     27         this.s = s;
     28     }
     29     @Override
     30     public void run() {
     31         // TODO Auto-generated method stub
     32         try{
     33             for(int x = 0;x<3;x++){
     34                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
     35                 String name = bufIn.readLine();
     36                 if(name == null){
     37                     break;
     38                 }
     39                 BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));
     40                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
     41                 String line = null;
     42                 boolean flag = false;
     43                 while((line = bufr.readLine())!=null){
     44                     if(line.equals(name)){
     45                         flag = true;
     46                         break;
     47                     }
     48                 }
     49                 if(flag){
     50                     System.out.println(name+",已登录");
     51                     out.println(name+"欢迎光临");
     52                     break;
     53                 }
     54                 else{
     55                     System.out.println(name+",尝试登录");
     56                     out.println(name+"用户名不存在。");
     57                 }
     58             }
     59             s.close();
     60         }
     61         catch(Exception e){
     62             e.printStackTrace();
     63         }
     64     }
     65 
     66 }
     67 
     68 package netTest;
     69 
     70 import java.io.BufferedReader;
     71 import java.io.IOException;
     72 import java.io.InputStreamReader;
     73 import java.io.PrintWriter;
     74 import java.net.InetAddress;
     75 import java.net.Socket;
     76 import java.net.UnknownHostException;
     77 
     78 /*
     79  * 只能校验三次。
     80  * 
     81  */
     82 public class LoginClient {
     83     public static void main(String[] args) throws Exception, Exception {
     84         // TODO Auto-generated method stub
     85         //1.建立端点
     86         Socket s = new Socket(InetAddress.getLocalHost(), 10003);
     87         //2.组织数据(先写输入输出流 )
     88         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
     89         PrintWriter out = new PrintWriter(s.getOutputStream(),true);
     90         BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
     91         //只能发送三次
     92         for(int x = 0;x<3;x++){
     93             String line = bufr.readLine();
     94             if(line == null){
     95                 break;
     96             }
     97             
     98             out.println(line);
     99             String info = bufIn.readLine();
    100             System.out.println("info:"+info);
    101             if(info.contains("欢迎")){
    102                 break;
    103             }
    104             
    105         }
    106         bufr.close();
    107         s.close();
    108     }
    109 }
  • 相关阅读:
    add custom attribute to standard windows controls
    产生0到1之间均匀分布的一个随机数与随机数序列
    (HDOJ 1002)A + B Problem II
    递推问题系列1幂积序列
    杭电题目分类解答
    (HDOJ 1003)Max Sum
    快排序(递归算法)
    (HDOJ 1004)Let the Balloon Rise
    (HDOJ 1005)Number Sequence
    一个关于去除数组重复元素的问题(C语言实现)
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/5149523.html
Copyright © 2011-2022 走看看