在 Java 中,服务器如何更改其 RMI 客户端的线程 ID?

发布于 2024-11-29 02:26:32 字数 233 浏览 0 评论 0原文

我有一个远程对象,它通过 Java RMI 为多个客户端提供服务,因此我需要远程对象能够识别其客户端。我正在考虑通过让远程对象调用 Thread.currentThread().setId() 来为客户端分配唯一的 id。我假设服务器将每个客户端视为一个单独的线程。

您能否向我展示如何仅使用一台机器来测试这种方法,该机器将同时扮演服务器和客户端部分?

如果您认为这行不通,我该如何解决这个问题?

谢谢。

I have a remote object that serves a number of clients via Java RMI and thus I need the remote object to be able to identify its clients. I'm thinking of assigning unique ids to client by having the remote object calling Thread.currentThread().setId(). I'm assuming that the server will see each client as a separate thread.

Could you please show me how I can test this approach with only one machine, which will play both the server and client parts?

And if you think it will not work, how can I solve this problem?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墟烟 2024-12-06 02:26:32

我假设服务器将每个客户端视为单独的
线程。

你不能这样假设。 RMI 规范规定,不保证服务器线程和客户端线程之间的关联(如果有)。

您正在寻找的是 RemoteServer.getClientHost()。

I'm assuming that the server will see each client as a separate
thread.

You can't assume that. The RMI specification states that there are no guarantees about the association if any between server threads and client threads.

What you are looking for is RemoteServer.getClientHost().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文