如何获取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对象上调用它们。
感谢。
答案 0 :(得分: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)
}
}
请注意,我已将对象定义更改为类定义,以允许对其进行参数化。