微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有Scala actor的客户端-服务器示例

如何解决具有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 举报,一经查实,本站将立刻删除。