Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component=require("component")
- local event = require("event")
- local opennet = {}
- local ONcard
- local LocalIP
- function opennet.getIP()
- if not component.isAvailable("tunnel") then
- ONcard=nil
- return nil, "OpenNet-карта не обнаружена"
- end
- ONcard=component.tunnel
- local ok,err=ONcard.send("", "", "getip")
- if not ok then return ok, err end
- local ev, addr, _, mess
- repeat
- ev, addr, _, _, _, LocalIP, _, mess = event.pull(3,"modem_message")
- if not ev then
- return nil, "Нет ответа от proxy-сервера"
- end
- until addr == ONcard.address and mess=="setip"
- return LocalIP
- end
- function opennet.send(recIP, ... )
- if not ONcard then
- return nil, "OpenNet-карта не инициализирована"
- end
- return ONcard.send(recIP, LocalIP, ...)
- end
- function opennet.receive(timeout)
- local ev
- repeat
- ev = {event.pull(timeout,"modem_message")}
- if not ev[1] then return nil end
- until ev[2] == ONcard.address
- return table.unpack(ev,7)
- end
- function opennet.sendrec(recIP, ... )
- local ok,err=opennet.send(recIP, ... )
- if ok then
- return opennet.receive(3)
- else
- return ok,err
- end
- end
- -----------------------------------------------------------------------
- return opennet
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement