0

アクターがリッスンしているポートを取得するにはどうすればよいですか?

次のコードがあります

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)

 ..

  }
}

アクターがリッスンしているポートを出力するにはどうすればよいですか?

2 番目の質問は、alive() メソッドと register() メソッドの呼び出しに関するものです。これらのメソッドは RemoteActor オブジェクトで定義されています。Actor オブジェクトでそれらを呼び出す方法を教えてください。

ありがとう。

4

1 に答える 1

1

アクター API では、特定のアクターがリッスンしているポートを知る方法はないと思います (Java RMI に少し似ていると思います)。あなたが電話しaliveた。

質問の 2 番目の部分に関する限り、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 に答える