lua使用zeromq实现 rep/req

参考:http://zeromq.org/bindings:lua
安装环境
sudo apt-get install lua
sudo apt-get install luarocks
sudo luarocks install lzmq
sudo luarocks install lua-llthreads2

1) 实现rep.lua

--require "zhelpers"
local zmq = require "lzmq"  -- 获取zmq的安装包
local context = zmq.context()   -- 创建一个ZMQ 上下文  ,
local publisher, err = context:socket{zmq.REP, bind = "tcp://*:5025"}  -- 调用套接字  服务端将套接字绑定在端口5025  
--zassert(publisher, err)   -- 开始等待响应 发出应答 如此循环
--  客户端是发送请求 并等待服务端的应答
local y = 0
while y>=0 do 
    local x = "This is a zmq test!"
    y = y + 1
    --local ret = zassert(publisher:recv())
    local ret = publisher:recv()
    print(y.."rep recv"..ret)
--    sleep(1)
    publisher:send(x)
    --zassert(publisher:send(x))
    -- print(y..":"..x)
end

2) 实现req.lua

--require "zhelpers"
local zmq = require "lzmq"
local context = zmq.context();
local requester,err = context:socket{zmq.REQ,connect = "tcp://localhost:5025"}
--zassert(requester,err)
for i = 1,10 do
    -- print("hello world")
    --zassert(requester:send("hello"));
    requester:send("hello")
    local ret = requester:recv()
    print("req recv==="..ret)
end

运行:
#lua5.1 rep.lua
#lua5.1 req.lua

猜你喜欢

转载自blog.csdn.net/xzh2005227042/article/details/81515109
今日推荐