Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local serialization = require("serialization")
- local event = require("event")
- local computer = require("computer")
- local m = component.modem
- local serverAddress = ""
- local localAddresS = ""
- local connected = false
- local serverId = 1
- function connectToServer()
- m.open(5)
- if m.isOpen(5) then
- print(m.isOpen(5))
- m.broadcast(5, serialization.serialize({to="router", method="connection"}))
- print("Sent a request for address")
- print("Waiting for answer")
- local _, localAddress, from, port, distance, message = event.pull(5, "modem_message")
- print(event)
- localAddresS = localAddress
- message = serialization.unserialize(message)
- if message.connected == true then
- serverAddress = from
- connected = true
- print("Connected with the router: " .. serverAddress)
- return
- end
- else
- print("Can't bind on port: 5")
- end
- end
- function listen(port)
- m.open(port)
- local _, localAddress, from, port, distance, message = event.pull("modem_message")
- message = serialization.unserialize(message)
- return message
- end
- function send(port2, to2, message2)
- if connected == true then
- m.open(10)
- m.send(serverAddress, 10, serialization.serialize({port = port2, from = localAddresS, time = os.time(os.date("!*t")), to = to2, message = message2, messageKind = "2"}))
- m.close(10)
- print("sent message to router")
- return
- else
- print("You can not send. You are not conneted")
- end
- end
- function broadcast(port, message)
- m.open(5)
- m.send(serverAddress, 5, serialization.serialize({method = "broadcast", message = message, port = port}))
- m.close(5)
- end
- function pearing()
- message2 = listen(30)
- if message2.from == localAddresS then
- pearing()
- else
- message = serialization.unserialize(message2.message)
- if message.serverId == "id1" then
- if message.pear == "true" then
- computer.beep()
- print("Pearing...")
- send(30, message2.from, serialization.serialize({answer = "true"}))
- else
- print("Pear not allowed...")
- os.exit()
- end
- else
- pearing()
- end
- end
- end
- function start()
- print("start connection to router...")
- connectToServer()
- print("open ports for communication...")
- m.open(30);
- print("init finished")
- print("start calling remote redstone server by id: " .. serverId)
- broadcast(30, "pearing")
- print("wait for answer...")
- pearing()
- end
- start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement