最近我第一次尝试设置网络时遇到了这个问题,通过服务器将对象从一个客户机发送到另一个客户机。
我尝试使用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;
}}
暂无答案!
目前还没有任何答案,快来回答吧!