You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
529 B
32 lines
529 B
modem = {}
|
|
|
|
network = {}
|
|
|
|
function modem:init(addr, handler)
|
|
local o = {}
|
|
setmetatable(o, self)
|
|
self.__index = self
|
|
o.network = network
|
|
o.address = addr
|
|
o.network[addr] = handler
|
|
return o
|
|
end
|
|
|
|
function modem:open(port)
|
|
return true
|
|
end
|
|
|
|
function modem:send(address, port, msg)
|
|
self.network[address](address, self.address, port, 0, msg)
|
|
end
|
|
|
|
function modem:broadcast(port, msg)
|
|
for addr in pairs(self.network) do
|
|
if addr ~= self.address then
|
|
self:send(addr, port, msg)
|
|
end
|
|
end
|
|
end
|
|
|
|
return modem
|