我正在使用Java创建游戏。我要求游戏玩家可以选择通过RMI连接或Socket连接进行连接。到目前为止,我已经为游戏创建了所有必要的组件,但是在创建RMI连接时,我遇到了一些问题。根据我对RMI的了解,所有用于创建连接的对象都需要声明为Remote(例如,实现Serializable接口)。看到我必须创建两种类型的连接,我不认为序列化到目前为止创建的所有对象是合理的。在这一点上,我可以想到两个可能的解决方案:
我是Java的新手,我很感激你在这个问题上的时间和耐心。
答案 0 :(得分:0)
根据我对RMI的了解,所有用于创建连接的对象都需要声明为Remote(例如实现Serializable接口)。
你没有在任何地方阅读过。它甚至没有意义。实施Remote
不会生成对象Serializable
。你必须
Remote
的远程界面。Serializable
,或者在极少数情况下,实现远程接口。UnicastRemoteObject
。如果(2)处有任何远程对象,请重复。
看到我必须创建两种类型的连接,我认为序列化到目前为止创建的所有对象并不合理。
您对(2)没有任何选择,尽管这不太可能包括到目前为止创建的所有对象。在任何情况下,您都必须为计划通过套接字发送的对象执行此操作。
此时我可以想到两种可能的解决方案:
- 为连接创建必要对象的远程版本(例如,通过创建扩展所述对象的类并实现Serializable接口以使对象远程)。
醇>
这只是废话。
执行此操作后,我可以定义适用于客户端可以调用的远程对象的方法。
这与我的第1步相对应。
- 创建这种新类型的远程对象,这些对象只是从客户端接收请求的消息,并将它们“转换”为非远程对象,然后继续执行所请求的操作。
醇>
这也是无稽之谈。