Advertisement
LuaGamer

opennet

Aug 13th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.30 KB | None | 0 0
  1. local component=require("component")
  2. local event = require("event")
  3.  
  4. local opennet = {}
  5. local ONcard
  6. local LocalIP
  7.  
  8. function opennet.getIP()
  9.   if not component.isAvailable("tunnel") then
  10.     ONcard=nil
  11.     return nil, "OpenNet-карта не обнаружена"
  12.   end
  13.   ONcard=component.tunnel
  14.   local ok,err=ONcard.send("", "", "getip")
  15.   if not ok then  return ok, err  end
  16.   local ev, addr, _, mess
  17.   repeat
  18.     ev, addr, _, _, _, LocalIP, _, mess = event.pull(3,"modem_message")
  19.     if not ev then
  20.       return nil, "Нет ответа от proxy-сервера"
  21.     end
  22.   until addr == ONcard.address and mess=="setip"
  23.   return LocalIP
  24. end
  25.  
  26. function opennet.send(recIP, ... )
  27.   if not ONcard then
  28.     return nil, "OpenNet-карта не инициализирована"
  29.   end
  30.   return ONcard.send(recIP, LocalIP, ...)
  31. end
  32.  
  33. function opennet.receive(timeout)
  34.   local ev
  35.   repeat
  36.     ev = {event.pull(timeout,"modem_message")}
  37.     if not ev[1] then return nil end
  38.   until ev[2] == ONcard.address
  39.   return table.unpack(ev,7)
  40. end
  41.  
  42. function opennet.sendrec(recIP, ... )
  43.   local ok,err=opennet.send(recIP, ... )
  44.   if ok then
  45.     return opennet.receive(3)
  46.   else
  47.     return ok,err
  48.   end
  49. end
  50. -----------------------------------------------------------------------
  51. return opennet
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement