小编JHK*_*wag的帖子

为什么当我通过 writeObject 方法发送对象时它没有改变?

我正在用Java 制作网络程序。正如标题所示,服务器尝试发送的对象在接收它的客户端中发生了变化。我试图在从服务器收到新对象之前更改客户端中存在的对象。这是我的代码。第一个是 Server.sendIdea,第二个是 Client.rcvIdea。

void sendIdea(Idea _idea) throws IOException {
    objectOS.flush();
    Idea idea = _idea;
//when I look into 'idea' it's fine
    objectOS.writeObject(idea);
}
Run Code Online (Sandbox Code Playgroud)

..

Idea rcvIdea(int _ideaCode) throws ClassNotFoundException, IOException {
    objectOS.writeObject("sendIdea");
    objectOS.writeObject(_ideaCode);
    Idea returnValue = (Idea) objectIS.readObject();
//when I look into 'returnValue', it is not the one 'sendIdea' has sent.
    return returnValue;
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,正在使用方法sendIdea(Idea _idea)从类发送对象。并通过使用方法接收对象。(我相信你不必详细了解类)。客户端通过这种方法实际上在程序启动时收到了一些s,没有任何问题。但是,当我尝试通过此方法接收相同但略有更改的对象时,在类中该对象不会更改,不像在类中将通过方法发送的对象被正确更改。我尝试了大约5个小时来解决这个问题。我逐行检查了所有代码,没有发现任何结果。我很确定 writeObject 或 readObject 方法有问题。我试图澄清这条流和许多其他试验。我希望我能找到问题所在。下面是我程序中的一些代码IdeawriteObjectrcvIdea()readObject()IdeaIdeaIdeaClientServersendIdeaobjectOS.flush()

Client.class包ideaOcean;

import java.awt.HeadlessException;
import java.io.IOException;
import …
Run Code Online (Sandbox Code Playgroud)

java sockets objectoutputstream objectinputstream

3
推荐指数
1
解决办法
1314
查看次数