java:在循环中将对象刷新到objectoutputstream时,对象没有更新

mbjcgjjk  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(223)

最近我第一次尝试设置网络时遇到了这个问题,通过服务器将对象从一个客户机发送到另一个客户机。
我尝试使用objectoutputstream类将任何对象发送到服务器,当我第一次发送对象时,服务器会很好地接收到该对象,但是如果我再次尝试发送,经过一些修改(例如,我尝试创建一个只包含字符串的类,然后在每次输出时更新字符串),不考虑修改。
我尝试使用一个包含字符串的类,因为当我尝试从类字符串发送对象时,它起作用,但当我使用自己的类时,它不起作用。
也许我没有正确使用objectoutputstream类?这是我的客户机类的一段代码

  1. boolean sendA = false;
  2. String a = "|";
  3. StringNBoolean b = new StringNBoolean("|", false);
  4. while (running) {
  5. a += "|";
  6. b.s += "|";
  7. if (sendA) {
  8. System.out.println("[CLIENT] " + " Sent: " + a);
  9. out.writeObject(a);
  10. out.flush();
  11. } else {
  12. System.out.println("[CLIENT] " + " Sent: " + b);
  13. out.writeObject(b);
  14. out.flush();
  15. }
  16. }

在这段代码中,我们可以看到我要么发送a,要么发送b,每次我在服务器日志中向它们添加一个字符时,我可以看到接收到的对象只在我发送a时更新,而不是为b更新。
StringBoolean类:

  1. public class StringNBoolean implements Serializable{
  2. private static final long serialVersionUID = -2732929164670973602L;
  3. public String s;
  4. public boolean b;
  5. public StringNBoolean(String s, boolean b) {
  6. this.s = s;
  7. this.b = b;
  8. }
  9. public String toString() {
  10. return s;
  11. }}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题