通过套接字传递对象引用?

时间:2013-05-02 12:23:38

标签: java

有没有办法通过socket传递对象引用?

假设我有一个连接到服务器的客户端,我想通过套接字将该客户端对象引用传递给服务器。那可能吗?如果有,怎么样?是推荐吗?还是有其他选择?

3 个答案:

答案 0 :(得分:2)

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

由于以下几个原因,您无法将其传递给其他计算机(甚至是其他进程):

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

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

答案 1 :(得分:0)

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

您可以发送对象的副本

答案 2 :(得分:0)

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