我正在使用rmi开发一个应用程序,允许客户端登录,执行某些任务并注销。我知道每个客户端在服务器上调用方法时都被视为一个线程,但是,所有客户端的线程都调用在服务器上创建的同一个对象。所以现在,我想为每个客户端登录成功,创建一个新线程(并且一个新对象,仅由一个客户端使用,也被绑定),一个线程在客户端注销时终止。因此,每个客户端都有自己的服务器对象。
非常感谢。
干杯
答案 0 :(得分:2)
我知道每个客户都会被考虑 当它调用方法时作为一个线程 服务器
这不正确。客户端和服务器线程之间的关系在RMI中是未定义的。
在任何情况下,每个客户端都不需要一个线程。每个客户端需要一个远程对象。这是会话模式的工作:
public interface Login extends Remote
{
Session login(String credentials) throws RemoteException;
}
public interface Session extends Remote
{
// Your API here
}
让您的Login实现对象为每个客户端返回一个新的Session实现对象。