简单的注册、登录案例

注册、登录案例

服务器端

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

        //创建集合,保存用户名,密码
        Properties properties = new Properties();

        //创建File文件
        File file = new File("userinfo.properties");
        if (!file.exists()) {
            file.createNewFile();
        }

        //从文件中加载数据到集合中
        properties.load(new FileReader(file));

        new RegThread(properties).start();
        new LoginThread(properties).start();
    }
}

注册

public class RegThread extends Thread {

    private Properties properties;

    public RegThread(Properties properties) {
        this.properties = properties;
    }

    @Override
    public void run() {
        ServerSocket listener = null;
        Socket socket = null;
        BufferedReader br = null;
        BufferedWriter bw = null;
        //1.获取ServerSocket,传入监听端口号
        try {
            listener = new ServerSocket(666);
            //2.监听
            System.out.println("注册线程启动");
            socket = listener.accept();
            //3.获取流
            InputStream is = socket.getInputStream();
            br = new BufferedReader(new InputStreamReader(is));
            OutputStream os = socket.getOutputStream();
            bw = new BufferedWriter(new OutputStreamWriter(os));
            //4.处理数据
            String data = br.readLine();
            String[] infos = data.split("#");
            if (infos != null) {
                //判断是否需要添加集合
                if (!properties.containsKey(infos[0])) {
                    properties.setProperty(infos[0], infos[1]);
                    bw.write("注册成功");
                    bw.newLine();
                    bw.close();

                    //写入文件  注意!写入文件的时候,使用的不是socket获取的流了
                    FileWriter fw = new FileWriter("userinfo.properties");
                    properties.store(fw, "");
                    fw.flush();
                    fw.close();

                } else {
                    bw.write("用户名已存在");
                    bw.newLine();
                    bw.close();
                }
            }
            //5.关闭资源
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
                br.close();
                socket.close();
                listener.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

登录

public class LoginThread extends Thread {

    private Properties properties;

    public LoginThread(Properties properties) {
        this.properties = properties;
    }

    @Override
    public void run() {
        BufferedReader br = null;
        BufferedWriter bw = null;
        Socket socket = null;
        ServerSocket listener = null;
        //1.创建ServerSocket
        try {
            listener = new ServerSocket(999);
            //2.监听
            System.out.println("登录线程启动");
            socket = listener.accept();
            //3.获取流
            InputStream is = socket.getInputStream();
            br = new BufferedReader(new InputStreamReader(is));
            OutputStream os = socket.getOutputStream();
            bw = new BufferedWriter(new OutputStreamWriter(os));
            //4.处理数据
            String data = br.readLine();
            String[] split = data.split("#");
            if (split != null) {
                if (properties.containsKey(split[0])) {
                    if (split[1].equals(properties.get(split[0]))) {
                        bw.write("登陆成功");
                        bw.newLine();
                        bw.flush();
                    } else {
                        bw.write("密码错误");
                        bw.newLine();
                        bw.flush();
                    }

                } else {
                    //向客户端返回登陆失败
                    bw.write("用户名不存在");
                    bw.newLine();
                    bw.flush();
                }
            }

            //5.关闭资源
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
                br.close();
                socket.close();
                listener.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}

客户端

public class TCPClient {
    public static void main(String[] args) {
        reg();
        login();
    }

    public static void login() {
        doAction(999);
    }

    public static void reg(){
        doAction(666);
    }

    public static void doAction(int port) {
        BufferedReader br = null;
        BufferedWriter bw = null;
        Socket socket = null;
        //1.创建Socket,绑定端口号
        try {
            socket = new Socket("10.9.21.216", port);
            //2.获取流
            InputStream is = socket.getInputStream();
            br = new BufferedReader(new InputStreamReader(is));
            OutputStream os = socket.getOutputStream();
            bw = new BufferedWriter(new OutputStreamWriter(os));
            //3.发送数据
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入姓名:");
            String name = sc.next();
            System.out.println("请输入密码:");
            String password = sc.next();

            bw.write(name + "#" + password);
            bw.newLine();
            bw.flush();

            //接收回复
            String s = br.readLine();
            System.out.println("服务器回复:" + s);



        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.关闭资源
            try {
                bw.close();
                br.close();
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3是目前前端开发中非常流行的一种JavaScript框架。它的特点是简单、易学、高效,并且有着很好的可扩展性。登录注册是Web应用中常见的功能,下面是一个使用Vue3实现简单登录注册项目案例: 1. 首先,你需要创建一个Vue3项目,可以使用Vue CLI等工具来快速搭建。 2. 接下来,你需要在Vue3项目中安装Vue Router和Vuex,它们分别用于管理路由和状态。 3. 然后,在src目录下创建一个views文件夹,用于存放所有的页面组件。在views文件夹下创建Login.vue和Register.vue两个组件。 4. 在Login.vue中,你可以编写登录表单,并且在表单中添加相应的数据绑定和事件处理逻辑。 5. 在Register.vue中,你可以编写注册表单,并且在表单中添加相应的数据绑定和事件处理逻辑。 6. 接着,在src目录下创建一个store文件夹,用于存放Vuex相关的代码。在store文件夹下创建一个user.js文件,用于管理用户信息。 7. 在user.js文件中,你可以定义一个state对象来存储用户信息,同时定义一些mutation和action来修改和获取用户信息。 8. 最后,在src目录下创建一个router.js文件,用于管理路由。在router.js文件中,你可以定义两个路由:一个用于显示登录页面,另一个用于显示注册页面。 这样,一个简单的Vue3登录注册项目就完成了。当用户输入用户名和密码进行登录或者注册时,相应的数据会被提交到后端进行处理,并且根据后端返回的结果来更新用户信息和路由跳转等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值