0

如何获取 Actor 正在侦听的端口?

我有以下代码

import scala.actors.Actor
import scala.actors.Actor._
import scala.actors.remote.RemoteActor._

object DispatchActor extends Actor 
{
  def act() 
  {
    alive(8888)
    register('myService, self)
    println("Listening on port " + howToGetPort)

 ..

  }
}

如何打印 Actor 正在侦听的端口?

第二个问题是关于调用 alive() 和 register() 方法。这些方法在 RemoteActor 对象中定义。如何在 Actor 对象上调用它们。

谢谢。

4

1 回答 1

1

我不认为 Actor API 可以让您知道特定 Actor 正在侦听哪个端口(现在我认为它有点类似于 Java RMI)所以在这种情况下的标准方法是记住您在何时指定的端口你打电话alive

至于你问题的第二部分,你没有在你的 Actor 对象上调用方法,你已经从对象定义顶部的 RemoteActor 导入了相关定义 - 所以你可以这样编写代码:

import scala.actors.Actor
import scala.actors.Actor._
import scala.actors.RemoteActor

class DispatchActor(port: Int) extends Actor 
{
  def act() 
  {
    RemoteActor.alive(port)
    RemoteActor.register('myService, self)
    println("Listening on port " + port)
  }
}

请注意,我已将您的对象定义更改为类定义以允许对其进行参数化。

于 2012-04-30T12:13:18.893 回答