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){} } }
一些细节问题没有处理,比如:允许相同用户名重复注册。
另外有个很严重的问题,如果两次密码输入不一致,那么接下来重新输入正确密码后,服务端将无法接受到用户端的消息,而客户端仍然提示成功。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· mysql8.0无备份通过idb文件恢复数据过程、idb文件修复和tablespace id不一致处
· 使用 Dify + LLM 构建精确任务处理应用