Java基础-网络编程(TCP-客户端并发登录)

来源:互联网 发布:淘宝禁售商品 编辑:程序博客网 时间:2024/05/20 18:48

客户端通过键盘录入用户名

服务端对这个用户名进行校验


如果该用户存在,在服务端显示xxx,已登陆

并在客户端显示xxx,欢迎光临


如果该用户不存在,在服务端显示xxx,尝试登陆

并在客户端显示xxx,该用户不存在


最多就登陆三次

import java.io.*;import java.net.*;class LoginClient{    public static void main(String[] args) throws Exception    {        Socket s = new Socket("192.168.0.100",10008);                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));                 for(int x=0;x<3;x++)        {            String line = bufr.readLine();            if(line==null)                break;            out.println(line);                         String info = bufIn.readLine();            System.out.println("info:"+info);            if(info.contains("欢迎"))                break;        }                 bufr.close();        s.close();    }} class UserThread implements Runnable{    private Socket s;    UserThread(Socket s)    {        this.s = s;    }    public void run()    {        String ip = s.getInetAddress().getHostAddress();        System.out.println(ip+"....connected");        try        {            for(int x=0;x<3;x++)            {                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));                                 String name = bufIn.readLine();                if(name==null)                    break;                                 BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));                                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);                                 String line = null;                                 boolean flag = false;                while((line=bufr.readLine())!=null)                {                    if(line.equals(name))                    {                        flag = true;                        break;                    }                }                if(flag)                {                    System.out.println(name+",已登陆");                    out.println(name+",欢迎光临");                    break;                }                else                {                    System.out.println(name+",尝试登陆");                    out.println(name+",用户名不存在");                                     }            }            s.close();        }        catch(Exception e)        {            throw new RuntimeException(ip+"校验失败");        }    }} class LoginServer{    public static void main(String[] args) throws Exception    {        ServerSocket ss = new ServerSocket(10008);                 while(true)        {            Socket s = ss.accept();                         new Thread(new UserThread(s)).start();        }    }}

0 0