Feddis08

server.lua

Apr 7th, 2022 (edited)
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.07 KB | None | 0 0
  1. local component = require("component")
  2. local serialization = require("serialization")
  3. local event = require("event")
  4. local computer = require("computer")
  5. local m = component.modem
  6. local serverAddress = ""
  7. local localAddresS = ""
  8. local connected = false
  9. local id = "1"
  10. local clientId = ""
  11.  
  12. function connectToServer()
  13.     m.open(5)
  14.     if m.isOpen(5) then
  15.         print(m.isOpen(5))
  16.         m.broadcast(5, serialization.serialize({to="router", method="connection"}))
  17.         print("Sent a request for address")
  18.         print("Waiting for answer")
  19.         local _, localAddress, from, port, distance, message = event.pull(5, "modem_message")
  20.         m.close(5)
  21.         localAddresS = localAddress
  22.         message = serialization.unserialize(message)
  23.         if message.connected == true then
  24.             serverAddress = from
  25.             connected = true
  26.             computer.beep()
  27.             print("Connected with the router: " .. serverAddress)    
  28.             return
  29.         end
  30.        
  31.     else
  32.         print("Can't bind on port: 5")
  33.     end
  34. end
  35.    
  36. function listen(port)
  37.     m.open(port)
  38.     local _, localAddress, from, port, distance, message = event.pull("modem_message")
  39.     message = serialization.unserialize(message)
  40.     return message
  41. end
  42.    
  43. function send(port2, to2, message2)
  44.     if connected == true then
  45.         m.open(10)
  46.         m.send(serverAddress, 10, serialization.serialize({port = port2, from = localAddresS, time = os.time(os.date("!*t"))
  47. , to = to2, message = message2, messageKind = "2"}))
  48.         m.close(10)
  49.         computer.beep()
  50.         print("sent message to router")
  51.         return
  52.     else
  53.         print("You can not send. You are not conneted")
  54.     end
  55. end
  56. function listening()
  57.     local _, localAddress, from, port, distance, message = event.pull("modem_message")
  58.     computer.beep()
  59.     print("io: ", port, from, distance)
  60.     message = serialization.unserialize(message)    
  61.     if port == 30 then
  62.         if message.message == "pearing" then
  63.             computer.beep()
  64.             print("Do you want to pear with: " .. message.from .. " true / false ...")
  65.             input = io.read()
  66.             if input == "true" then
  67.                 send(30, message.from, serialization.serialize({pear = "true", serverId = "id1"}))
  68.                 print("Pearing...")
  69.             else
  70.                 send(30, message.from, serialization.serialize({pear = "false", serverId = "id1"}))
  71.                 print("Pearing abbort! ")
  72.                 os.exit()
  73.             end
  74.         end
  75.         --message2 = serialization.unserialize(message.message)
  76.         print(tostring(message.messagekind))
  77.         if message.message.answer == "true" then
  78.                 clientId = from
  79.                 computer.beep()
  80.                 print("pearing done")
  81.         end
  82.     end
  83.     listening()
  84. end
  85. function init()
  86.     computer.beep()
  87.     print("start connection to router...")
  88.     connectToServer()
  89.     print("open ports for communication...")
  90.     m.open(30);
  91.     print("init finished")
  92.     print("Starting listening")
  93.     listening()
  94.     listening()
  95. end
  96. init()
Add Comment
Please, Sign In to add comment