Getuserpassword

将【新注册的用户的用户名和密码】保存到服务端本地

/*将注册成功的用户名和密码保存到本地*/    
                /*定位*/
                File f = new File("D:/lab_2/用户名和密码.qq");
            
                /*建立管道*/
                FileWriter fw = new FileWriter(f , true);            /*注释:这里没有true是覆盖模式,有true是追加模式*/
                PrintWriter pw = new PrintWriter(fw);        
            
                /*操作管道*/
                pw.println(uandp);
            
                pw.close();                                            /*注释:将缓存到PrintWriter缓冲区的内容刷新(追加)到文件中*/
            

将【用户名和密码】发送到服务端

@Override
    public void actionPerformed(ActionEvent arg0){
        //System.out.println(arg0);
        if(arg0.getActionCommand().equals(" CONFIRM ")){
            try{
                /*获取用户名和密码 --> 临时存储在字符串变量中*/
                String user = txtUser.getText();
                String pass = txtPass.getText();
                String passRe = txtPassRe.getText();
                
                Socket s = new Socket("127.0.0.1" , 8000);
                
                /*建立输出管道*/
                OutputStream os = s.getOutputStream();
                OutputStreamWriter osw = new OutputStreamWriter(os);
                PrintWriter pw = new PrintWriter(osw , true);
                
                /*操作输出管道*/
                /*判断两次密码输入是否一致*/
                if(pass.equals(passRe)){
                    /*向服务端发送用户名和密码*/
                    pw.println(user+"%"+ pass);
                    
                    /*后续事件:显示成功对话框 --> 让注册界面消失*/
                    JOptionPane.showMessageDialog(this, "success!");
                    this.setVisible(false);
                }
                else{
                    /*显示错误对话框*/
                    JOptionPane.showMessageDialog(this, "The passwords you typed do not match,type the same password in both text boxes.");
                    
                    /*后续事件:.....*/
                    txtPassRe.setText("");
                }
            }catch(Exception e){}
        }
    }

一些细节问题没有处理,比如:允许相同用户名重复注册。

另外有个很严重的问题,如果两次密码输入不一致,那么接下来重新输入正确密码后,服务端将无法接受到用户端的消息,而客户端仍然提示成功。

原文地址:https://www.cnblogs.com/xkxf/p/6023370.html