Java学习:用IO、多线程、TCP,实现 客户端和服务器登录和注册功能

实现登陆与注册 功能。

    客户端与服务端连接的时候,就要提示客户端请选择功能。
    客户端注册的时候,用户名与密码都是发送给服务端 的,服务端需要把数据保存到服务端的文件上。
    登陆: 登陆的时候客户端输入用户名与密码发送给服务端,服务端需要校验,返回结果给客户端。
    IO、线程、网络、修饰

客户端代码:


public class TestAll_client {


    public static void main(String[] args) throws IOException {

        Socket socket = new Socket(InetAddress.getLocalHost(),9090);

        BufferedWriter sockWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        BufferedReader sockReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

        while (true){
            System.out.println("请选择功能:登录A,注册B,退出C ");
            String option = bufferedReader.readLine();
            if ("A".equalsIgnoreCase(option)){
                //登录,,,
                getInfo(sockWriter, sockReader, bufferedReader, option);
            }
            else if ("B".equalsIgnoreCase(option)){
                //注册,,,
                getInfo(sockWriter,sockReader,bufferedReader,option);
            }
            else {
                break;
            }
        }

        }

    public static void getInfo(BufferedWriter sockWriter, BufferedReader sockReader, BufferedReader bufferedReader, String option) throws IOException {

        System.out.println("请输入用户名:");
        String userName = bufferedReader.readLine();
        System.out.println("请输入密码:");
        String userpassword =bufferedReader.readLine();
        String info = option+" "+userName+" "+userpassword+"\r\n";
        sockWriter.write(info);
        sockWriter.flush();

        String str =null;
        str = sockReader.readLine();
        System.out.println(str);
    }

}

服务器端代码:

ublic class TestAll_sever extends  Thread {

    static File file = new File("C:\\Users\\22847\\Desktop\\TestProperties.txt");
       {
          if (!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    Socket socket;

    public TestAll_sever(Socket socket ) {
        this.socket=socket;
    }


    public void run() {
        while (true) {
            try {

                BufferedReader socekReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                BufferedWriter sockwriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                String[] user = socekReader.readLine().split(" ");
                String option = user[0];
                String userName = user[1];
                String userPassword = user[2];
                if ("A".equalsIgnoreCase(option)) {
                    //登录,,,
                    Properties properties = new Properties();
                    properties.load(new FileInputStream(file));
                    if (properties.containsKey(userName)) {
                        if (userPassword.equals(properties.getProperty(userName))) {
                            sockwriter.write("登录成功,,,\r\n");

                        } else {
                            sockwriter.write("密码错误,,,\r\n");

                        }
                    } else {
                        sockwriter.write("用户名不存在,,,\r\n");
                    }

                    sockwriter.flush();

                } else if ("B".equalsIgnoreCase(option)) {
                    //注册,,,
                    Properties properties = new Properties();
                    properties.load(new FileInputStream(file));
                    if (!properties.containsKey(userName)) {
                        properties.setProperty(userName, userPassword);
                        properties.store(new FileOutputStream(file), "TCP");
                        sockwriter.write("注册成功,,\r\n");

                    } else {
                        sockwriter.write("用户名已经存在,,\r\n");

                    }

                    sockwriter.flush();
                }

            } catch (Exception e) {
                System.out.println("ddd");
            }

        }
    }

    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = new ServerSocket(9090);
        while (true) {
            Socket socket = serverSocket.accept();
            new TestAll_sever(socket).start();
        }
    }
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值