我正在开发一个带有套接字和RMI的游戏。套接字部分现在完成我正在启动RMI部分。我希望能够邀请某人玩(A-> B)并获得回复(B-> A)。
你能帮助我吗?
提前致谢。干杯
编辑:我一直在研究,我目前正在将客户端实现为远程对象(定义接口并实现它)。我认为这叫做回调。我在正确的道路上吗?
我在想的是A在B的计算机上调用远程对象上的方法。 B上的服务器要求客户端(也是同一台计算机中的服务器)如果想要玩A获取响应并将其返回给A.就像我说我刚刚用tcp和udp套接字完成了这个游戏,现在我必须对RMI做同样的事情。两个客户端没有办法直接通信,就像通过TCP连接一样,使用RMI,是吗?
答案 0 :(得分:4)
我一直在研究,我目前正在将客户端实现为远程对象(定义接口并实现它)。我认为这叫做回调。我在正确的道路上吗?
RMI通常作为客户端和服务器实现。客户端在服务器上进行调用,返回可在客户端上使用的对象。阅读完评论后,他们是正确的,根据您描述问题的方式,您需要使客户端也成为RMI服务器。但是,我不相信这是必要的。
例如,假设您有2个客户都试图玩游戏。协议可能如下所示:
因此,不是服务器需要联系A或B,而是经常轮询以获得游戏更新等。
对S的方法调用也可以等待其他玩家,直到有一个玩家才会返回。我认为轮询选项更好,但因为S知道A是否停止呼叫而A不必担心S崩溃和挂起。
希望这有帮助。