0

有没有办法通过套接字传递对象引用?

假设我有一个连接到服务器的客户端,我想通过套接字将该客户端对象引用传递给服务器。那可能吗?如果是,如何?并且推荐吗?还是有替代方案?

4

3 回答 3

2

如果“引用”实际上是指 Java 引用,则不是:

由于以下几个原因,您不能将其传递给另一台机器(甚至是另一个进程):

  • Java 不允许您访问实际的引用值(您只能取消引用它,即访问引用后面的对象/值)
  • 即使可以,该值在原始过程之外也没有任何意义(如果您想像句柄/令牌一样处理它,这是可以容忍的)

根据您想要实现的目标,最好提供您自己的某种 ID(例如数字),保留从这些 ID 到实际对象的映射,并通过连接传递 ID。

于 2013-05-02T12:30:54.553 回答
0

您不能发送对象的引用,因为在正常情况下,服务器和客户端在不同的 jvm 中运行。

您可以发送对象的副本

于 2013-05-02T12:30:14.280 回答
0

你想实际实现什么。为什么不创建每个客户端也是服务器的客户端+服务器架构。这就是它在许多协议中的工作方式,其中需要客户端可以连接到服务器并且其他客户端也可以连接到该客户端的行为。为您的客户端和服务器连接使用不同的端口。你应该很好。

于 2013-05-02T14:26:58.977 回答