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

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

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

boolean sendA = false;  
String a = "|";
StringNBoolean b = new StringNBoolean("|", false);

while (running) {
    a += "|";
    b.s += "|";
    if (sendA) {
        System.out.println("[CLIENT] " + " Sent: " + a);
        out.writeObject(a);
        out.flush();
    } else {
        System.out.println("[CLIENT] " + " Sent: " + b);
        out.writeObject(b);
        out.flush();
    }
}

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

public class StringNBoolean implements Serializable{

private static final long serialVersionUID = -2732929164670973602L;
public String s;
public boolean b;
public StringNBoolean(String s, boolean b) {
    this.s = s;
    this.b = b;
}
public String toString() {
    return s;   
}}

暂无答案!

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

相关问题