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

/*将注册成功的用户名和密码保存到本地*/
/*定位*/
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){}
}
}

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

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

05-02 12:30