如何知道哪个客户端在服务器上调用RMI方法

时间:2013-06-17 09:19:52

标签: java client-server rmi distributed-computing

我正在使用Java RMI开发一个系统。我有几个RMI客户端和一个RMI服务器。我的系统应该是Byzantine Fault Tolerant,因此客户端可能是恶意的(不仅是崩溃停止)。

从这个意义上讲,我应该能够在服务器中识别客户端何时调用重复或尝试使用其他客户端信息调用方法(以捕获服务器和多数投票)。为了解决这个问题,我使用的是客户端和服务器共享的公钥/私钥。每个客户端都有一个唯一的密钥来生成和散列,服务器将验证散列。现在,我需要在服务器端知道哪个客户端调用该方法来知道我应该使用哪个密钥来验证数据。

可以在服务器上知道哪个服务器正在调用这些方法吗?

问候并感谢你, 雨果

2 个答案:

答案 0 :(得分:2)

使用RemoteServer.getClientHost()的结果。

答案 1 :(得分:0)

我认为RemoteServer有一种方法可以在有人调用方法时获取客户端IP地址。

如果IP足够,你可以查看。