使用 Scala actor 的客户端-服务器示例

2023-12-25

实施以下示例的最佳方法是什么?

  • Actor server收到Requests, 处理它们,创建一个新的Response对于每个Request并发送Response后退 到Request sender.

  • Actor client sends 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))
      }
   }
}

Usage:

scala> client ! SendRequest("Hello!")
Server got request [Hello!] from client
Client got response [Hello!] from server

关于:

所有这些通信都是异步的 因此它使用react。

使用的演员receive也是异步的。他们只是阻塞线程,等待新消息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Scala actor 的客户端-服务器示例 的相关文章

随机推荐