我想创建一个也可以充当客户端的rmi服务器,虽然这方面工作正常 - 我遇到的一个问题是,对于任何特定的服务器/客户端关系,更改实例上的局部变量(用于当服务器(因此远程触发的方法)不会持续存在。
因此,下次我尝试访问此变量或返回该变量时,原始未更改的变量将通过。
在C ++中(如果你有rmi :)我本可以传递一个指针 - 但是我如何强制java改变基础值呢?
答案 0 :(得分:0)
您如何传输远程对象?有两种机制,远程存根和序列化。由于您正在谈论访问字段,我假设您使用序列化(远程存根只是接口,只有方法,没有字段)。
序列化的对象作为副本传输。它们只是值对象,不会受到服务器上“他们的”版本发生的任何影响。如果需要一个在服务器上继续“活动”的对象,则必须使用Remote对象。在这种情况下,只在客户端上创建存根,并且所有方法调用都将转到服务器。