带有Scala参与者的客户机-服务器示例
实现以下示例的最佳方法是什么带有Scala参与者的客户机-服务器示例,scala,actor,Scala,Actor,实现以下示例的最佳方法是什么 参与者服务器接收请求, 处理它们,创建新的响应 对于每个请求,发送响应 发送至请求发件人 参与者客户端发送请求和 接收响应 所有这些通信都是异步的,因此它使用react 这只是一个例子,因此它不应该处理所有这些情况,如服务器关闭,客户端卡住等。它应该简洁而富有表现力 import scala.actors._ import Actor._ case class SendRequest(rid: String) case class Request(rid: S
- 参与者
接收服务器
, 处理它们,创建新的请求
对于每个响应
,发送请求
发送至响应
发件人请求
- 参与者
发送客户端
和 接收请求
响应
react
这只是一个例子,因此它不应该处理所有这些情况,如服务器
关闭,客户端
卡住等。它应该简洁而富有表现力
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
关于:
所有这些通信都是异步的
因此它使用react
使用receive
的参与者也是异步的。他们只是阻塞线程,等待新消息