【发布时间】:2011-04-17 06:55:09
【问题描述】:
我正在使用 Remote Actors,但我遇到了一些困难。
考虑这个服务器:
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!"
}
}
正如预期的那样,服务器打印“嘿!”。
但是,出乎意料的是,客户端应用程序从未终止!
看起来客户端应用程序上已经启动了许多线程,但是在我的主函数完成后它们继续运行!
如何终止客户端应用程序?还有更多:如果我希望我的客户端能够启动和停止连接怎么办?我怎样才能做到这一点?
一些附加信息(基于回复):我正在使用 scala 2.8.0.final,我在这里谈论的是独立服务器和独立客户端。它们应该像$ scala Server 和$ scala Client 一样启动。我想要发生的是应用程序“客户端”应该完成,但它永远不会发生。
谢谢!
【问题讨论】:
标签: scala actor remote-actors