scala的tcp通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala的tcp通信相关的知识,希望对你有一定的参考价值。

client:

技术分享
object ActorClient extends App {

  import actors.Actor, actors.remote.Node, actors.remote.RemoteActor

  Actor.actor {

    // 取得一个节点(ip:port 唯一标识一个节点) 

    // Node 是个 case class,所以不需要 new 

    val node = Node("127.0.0.1", 3000)

    // 取得节点对应的 actor 代理对象 

    val remoteActor = RemoteActor.select(node, server1)

    // 现在 remoteActor 就和普通的 actor 一样,可以向它发送消息了! 

    println("-- begin to send message")

    remoteActor ! "ActorClient的消息"

    println("-- end")

  }

}
View Code

server:

技术分享
object ActorServer extends App {

  import actors.Actor, actors.Actor._, actors.remote.RemoteActor

  Actor.actor { // 创建并启动一个 actor

    // 当前 actor 监听的端口: 3000

    RemoteActor.alive(3000)

    // 在 3000 端口注册本 actor,取名为 server1。

    // 第一个参数为 actor 的标识,它以单引号开头,是 Scala 中的 Symbol 量,

    // Symbol 量和字符串相似,但 Symbol 相等是基于字符串比较的。

    // self 指代当前 actor (注意此处不能用 this)

    RemoteActor.register(server1, Actor.self)

    // 收到消息后的响应

    loop {

      Actor.react {
        case msg =>

          println("server1 get: " + msg)

      }

    }

  }

}
View Code

 

以上是关于scala的tcp通信的主要内容,如果未能解决你的问题,请参考以下文章

在tablayout片段之间进行通信[重复]

异常和TCP通讯

与另一个片段通信的片段接口

TCP通信的客户端代码实现,TCP通信的服务端代码实现

无法通过接口获取与片段通信的活动

为什么Scala是可扩展的?