如何解决具有Scala actor的客户端-服务器示例
| 实现以下示例的最佳方法是什么? 演员server
收到Requests
,
处理它们,创建一个新的Response
每个each3ѭ,然后将Response
发回
发送给Request
发送者。
演员client
发送Requests
,
收到Responses
。
所有这些通信都是异步的,因此使用react
。
这只是一个例子,因此它不应该处理所有情况,例如server
下降,client
被卡住等。它应该简洁明了。
解决方法
import scala.actors._
import Actor._
case class SendRequest(rid: String)
case class Request(rid: String)
case class Response(rid: String)
val server = actor {
eventloop {
case Request(rid) =>
println(\"Server got request [%s] from client\" format(rid))
sender ! Response(rid)
}
}
}
val client = actor {
eventloop {
case SendRequest(rid) => server ! Request(rid)
case Response(rid) =>
println(\"Client got response [%s] from server\" format(rid))
}
}
}
用法:
scala> client ! SendRequest(\"Hello!\")
Server got request [Hello!] from client
Client got response [Hello!] from server
关于:
所有这些通信都是异步的
因此它使用反应。
使用“ 14”的角色也是异步的。他们只是阻塞线程,等待新消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。