您的位置:首页 > 编程语言 > Lua

lua zmq client

2016-02-29 15:40 417 查看
require "zhelpers"

local zmq = require "lzmq"

---------------------------PULL--------------------

local ztimer = require "lzmq.timer"

local context = zmq.context()

local receiver,err = context:socket{zmq.PULL,bind = "tcp://*:5558"}

zassert(receiver, err)

-- Wait for start of batch

-- receiver:recv()

-- Start our clock now

local timer = ztimer.monotonic():start()

print("111111111")

-- Process 100 confirmations

for task_nbr = 1, 10 do

print("22222222")

local message = receiver:recv();

if task_nbr % 10 == 0 then

print(task_nbr)

print(message)

else

print (task_nbr)

end

io.flush()

end

-- Calculate and report duration of batch

printf ("Total elapsed time: %d msec\n", timer:stop());

-----------------------------REQ-------------------

print("Connecting to hello world server ...")

local context = zmq.context()

local requester, err = context:socket{zmq.REQ,

connect = "tcp://localhost:5555"

}

zassert(requester, err)

for request_nbr = 0, 9 do

print ("Sending Hello " .. request_nbr .. "...")

requester:send("Hello")

local buffer = requester:recv()

print("Received World " .. request_nbr)

end

----------------------------SUB-------------------

--SUB会过滤PUB来得消息,由filter来定义数据格式

local filter =""

printf("Collecting updates from weather server ...\n")

local context = zmq.context()

local subscriber, err = context:socket{zmq.SUB,

subscribe = filter;

-- connect = "tcp://172.15.2.4:6000";

connect = "tcp://localhost:5554";

}

zassert(subscriber,err)

print(subscriber)

local update_nbr, total_temp = 100, 0

-- for i = 1, update_nbr do

while(1) do

print("~~~~~~~~~~~")

local message = subscriber:recv()

-- local y = {}

-- y = string.split(message,%s)

-- print(y..":"..#y)

local x = ""

local table1 = {}

for name1 in string.gmatch(message,"([%d]*)%s+([-]?[%d-]*)%s+([-]?[%d-]*)") do

table.insert(table1.name1)

print(name1)

end

for i=1,7 do

-- x = x..table1[i]..","

print(i)

print(table1[i])

end

-- for name2 in string.gmatch(message,"title_name %w+") do

-- print(name2)

-- x = x..","..name2

-- end

print(x)

print(total_temp.."-> "..message)

total_temp = total_temp + 1

end

-- printf ("Average temperature for zipcode '%s' was %dF\n",

-- filter, (total_temp / update_nbr))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: