我正在开发一个使用rmi的应用程序,它允许客户端登录,执行一些任务并注销。我知道每个客户端在服务器上调用一个方法时都被认为是一个线程,但是,所有客户端的线程都会调用服务器上创建的同一个对象。所以现在,我想要为每个客户端登录成功创建一个新线程(并且只有一个客户端使用的新对象也被绑定),线程在客户端注销时终止。因此,每个客户端都有自己的服务器对象。RMI-在服务器上创建线程来服务客户端
非常感谢。
干杯
我正在开发一个使用rmi的应用程序,它允许客户端登录,执行一些任务并注销。我知道每个客户端在服务器上调用一个方法时都被认为是一个线程,但是,所有客户端的线程都会调用服务器上创建的同一个对象。所以现在,我想要为每个客户端登录成功创建一个新线程(并且只有一个客户端使用的新对象也被绑定),线程在客户端注销时终止。因此,每个客户端都有自己的服务器对象。RMI-在服务器上创建线程来服务客户端
非常感谢。
干杯
听起来很复杂。
对于每个连接的客户端,您将获得一个新线程,并在客户端断开连接时终止。你在登录后计划线程将做什么,第一个线程不能?
如果您想为每个客户端创建一个对象,则可以使用ThreadLocal为每个线程(每个客户端)创建一个对象。
我知道,每个客户端被视为 作为一个线程时,它调用一个方法 服务器
这是不正确的。客户端和服务器线程之间的关系在RMI中未定义。
无论如何你不需要每个客户端的线程。每个客户需要一个远程对象。这是会话模式的工作:
public interface Login extends Remote
{
Session login(String credentials) throws RemoteException;
}
public interface Session extends Remote
{
// Your API here
}
让您登录实现对象返回一个新的Session对象的实现为每个客户端。
会话模式是一个非常好的主意。我会试试看。谢谢。 – 2011-01-12 11:45:25