scala – 经销商(服务器)到经销商(工人)不工作
发布时间:2020-12-16 18:47:33 所属栏目:安全 来源:网络整理
导读:在以下DEALER到DEALER连接中,Worker DEALER将[] [Foo!](即2帧消息)发送到服务器DEALER. package net.asyncimport org.zeromq.ZMQimport org.zeromq.ZMQ.Socketclass Worker(name: String) extends Runnable { import DealerToDealer._ val WorkerResponse =
在以下DEALER到DEALER连接中,Worker DEALER将[] [Foo!](即2帧消息)发送到服务器DEALER.
package net.async import org.zeromq.ZMQ import org.zeromq.ZMQ.Socket class Worker(name: String) extends Runnable { import DealerToDealer._ val WorkerResponse = "Foo!".getBytes val id = name.getBytes override def run(): Unit = { val context = ZMQ.context(1) val worker = context.socket(ZMQ.DEALER) worker.setIdentity(id) worker.connect(s"tcp://localhost:$Port") runHelper(worker) } private def runHelper(worker: Socket): Unit = { println(s"Worker ${name}: sending Empty + ${show(WorkerResponse)}.") worker.send(Empty,ZMQ.SNDMORE) worker.send(WorkerResponse,0) println(s"Worker ${name}: sent") val message = show(worker.recv(0)) println(s"Worker ${show(worker.getIdentity)}: received message: $message.") runHelper(worker) } } object DealerToDealer { def show(xs: Array[Byte]): String = new String(xs) val Port = 5555 val Empty = "".getBytes val WorkerMessage = "Bar!".getBytes val WorkLimit = 25 def main(xs: Array[String]): Unit = { val context = ZMQ.context(1) val server = context.socket(ZMQ.DEALER) new Thread(new Worker("Bob")).run() server.bind(s"tcp://*:$Port") runHelper(server,0) } private def runHelper(server: Socket,sent: Int): Unit = { if (sent > WorkLimit ) { println(s"SERVER: sent the '$WorkerMessage' message ${WorkLimit} times. shutting down.") sys.exit(0) } else { println(s"SERVER: sending Empty + ${show(WorkerMessage)}.") server.send(Empty,ZMQ.SNDMORE) server.send(WorkerMessage,0) println(s"SERVER: sent") val message = server.recv(0) println(s"SERVER: received message: ${show(message)}.") runHelper(server,sent + 1) } } } 但是,在运行它时,只有print语句显示发送Worker的消息.未显示实际收到的服务器 [info] Running net.async.DealerToDealer [info] Worker Bob: sending Empty + Foo!. [info] Worker Bob: sent 为什么服务器没有收到此消息? 此外,[] [消息]格式是否适用于经销商与经销商的交易? 解决方法
是的[] [消息]的格式是正确的,但请记住您需要阅读(所有内容)空框架然后您的消息.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |