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 id = "1"
- local clientId = ""
- 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")
- m.close(5)
- localAddresS = localAddress
- message = serialization.unserialize(message)
- if message.connected == true then
- serverAddress = from
- connected = true
- computer.beep()
- 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)
- computer.beep()
- print("sent message to router")
- return
- else
- print("You can not send. You are not conneted")
- end
- end
- function listening()
- local _, localAddress, from, port, distance, message = event.pull("modem_message")
- computer.beep()
- print("io: ", port, from, distance)
- message = serialization.unserialize(message)
- if port == 30 then
- if message.message == "pearing" then
- computer.beep()
- print("Do you want to pear with: " .. message.from .. " true / false ...")
- input = io.read()
- if input == "true" then
- send(30, message.from, serialization.serialize({pear = "true", serverId = "id1"}))
- print("Pearing...")
- else
- send(30, message.from, serialization.serialize({pear = "false", serverId = "id1"}))
- print("Pearing abbort! ")
- os.exit()
- end
- end
- --message2 = serialization.unserialize(message.message)
- print(tostring(message.messagekind))
- if message.message.answer == "true" then
- clientId = from
- computer.beep()
- print("pearing done")
- end
- end
- listening()
- end
- function init()
- computer.beep()
- print("start connection to router...")
- connectToServer()
- print("open ports for communication...")
- m.open(30);
- print("init finished")
- print("Starting listening")
- listening()
- listening()
- end
- init()
Add Comment
Please, Sign In to add comment