gpt4 book ai didi

java - 使用 Java 通过网络发送对象

转载 作者:行者123 更新时间:2023-11-29 10:19:54 25 4
gpt4 key购买 nike

我正在尝试通过物理网络(而不是通过本地主机)在 java 中发送一个对象,但似乎我出了点问题。

对象的接口(interface)(客户端和服务器都有这个):

public interface distributable extends Serializable {

public void test();
}

我要发送的对象(只有服务器有这个):

class ObjectToSend implements distributable {

public ObjectToSend() {
}

public void test() {
system.out.println("worked!");
}
}

服务器:

private ObjectToSend obj = new ObjectToSend();

obj_out_stream.writeObject(obj);
obj_out_stream.flush();

客户:

private distributable ReceivedObj = null;

try {
ReceivedObj = (distributable) obj_in_steam,readObject();
} catch (ClassNotFoundException e) {
System.err.println("Error<w_console>: Couldn't recieve application code!");
}
ReceivedObj.test();

ObjectToSend 类实现 Serializable 时一切正常,我没有使用接口(interface),因为我的所有类都在一个目录中,因此客户端“知道”该对象。现在我希望它在物理网络上工作,这样客户端只有对象的接口(interface)。似乎客户端无法接收该对象,因为每次都抛出异常。

最佳答案

正如其他答案所暗示的那样,客户端还必须知道您要发送的对象的类。

通常,一个人会为这样一个经典的客户端-服务器示例创建三个包/项目:

通用:客户端和服务器使用的代码;您要从服务器发送到客户端的对象的类定义属于这里

客户端:只有客户端需要知道的所有代码

服务器:只有服务器需要知道的所有代码

关于java - 使用 Java 通过网络发送对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8357220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com