リモート アクターで遊んでいますが、いくつかの問題に直面しています。
次のサーバーを検討してください。
object Server {
def main(args: Array[String]) {
val server = new Server
server.start
}
}
class Server extends Actor {
RemoteActor.alive(12345)
RemoteActor.register('server, this)
def act() {
while(true) {
receive { case x => println(x) }
}
}
}
私は単純なクライアントを書きました:
object Client {
def main(args: Array[String]) {
val server = RemoteActor.select(Node("localhost", 12345), 'server)
server ! "Hey!"
}
}
予想どおり、サーバーは「Hey!」を出力します。
しかし、予期せず、クライアント アプリケーションが終了しません。
クライアント アプリケーションで多くのスレッドが開始されているように見えますが、メイン関数が終了した後も実行され続けます。
クライアント アプリケーションを終了するにはどうすればよいですか? さらに: クライアントが接続を開始および停止できるようにしたい場合はどうすればよいでしょうか? どうすればこれを達成できますか?
いくつかの追加情報 (返信に基づく): 私は scala 2.8.0.final を使用しています。ここで話しているのは、スタンドアロン サーバーとスタンドアロン クライアントです。と のように起動する必要が$ scala Server
あり$ scala Client
ます。私がしたいのは、アプリケーション「クライアント」が終了することですが、決して起こりません。
ありがとう!