java - 多个读/写服务器客户端
问题描述
我正在尝试对密码和用户名进行简单检查,然后检查表格,但我遇到了问题。
客户端可以读取第一个println
('输入用户名'),但永远无法读取第二个('输入密码')。
我怎样才能实现这个客户端可以多次读写?
//write
pr.println("Enter user name");
pr.flush();
//read
String userNameRes = bf.readLine();
//write
pr.println("Enter password:");
//read
String password = bf.readLine();
这在我的客户方面:
//read
String serverPasswordRes = bf.readLine();
System.out.println(serverPasswordRes);
//input write
String userNameRes = in1.readLine();
pr.println(userNameRes);
pr.flush();
//read
String PasswordRes = bf.readLine();
System.out.println(PasswordRes);
//input write
String passwordClinetRes = in1.readLine();
pr.println(passwordClinetRes);
pr.flush();
解决方案
你能把
pr.println("Enter password:");
pr.flush(); //add this
冲洗流。如果流已将来自各种 write() 方法的任何字符保存在缓冲区中,请立即将它们写入其预期目的地。然后,如果该目的地是另一个字符或字节流,则刷新它。因此,一次 flush() 调用将刷新 Writers 和 OutputStreams 链中的所有缓冲区。
推荐阅读
- swift - 正则表达式仅在字符串具有前缀时才执行某些操作
- r - R 函数用于从前几行中识别唯一行,而不是完全在数据框中
- django - Django-cors-headers 不适用于 Expo-web
- flutter - 在特定日期时间在后台运行 Flutter 代码
- django - Django没有将静态文件加载到资产文件中
- java - 打破多态性?
- python - 比较两个numpy数组后如何使用颜色图绘制散点数据点?
- spring - 从nestjs发送文件
- javascript - 启动 Shift + 旋转,将对象旋转 15° 步长(FabricJS)
- php - 根据请求验证路线 {prop}