Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Програма для маршрутизаторів
- local function getAddressComponents(address)
- -- Розділити адресу на компоненти
- local components = {}
- for component in string.gmatch(address, "[^%.]+") do
- table.insert(components, tonumber(component))
- end
- return components
- end
- local function sendToNextLevel(message, receiverAddress)
- local components = getAddressComponents(receiverAddress)
- local clientID = components[1]
- local city = components[2]
- local cityGroup = components[3]
- -- Перевірити, чи це клієнт в поточному маршрутизаторі
- if city == 1 and cityGroup == 1 then
- -- Це клієнт в поточному маршрутизаторі, обробити повідомлення
- print("Повідомлення від клієнта " .. clientID .. ": " .. message)
- else
- -- Це не клієнт в поточному маршрутизаторі, відправити повідомлення до наступного рівня мережі
- local nextRouterAddress = "hms." .. cityGroup .. "." .. city .. "." .. clientID
- rednet.send(nextRouterAddress, message)
- end
- end
- local function receiveAndForward()
- while true do
- local senderID, message, distance = rednet.receive()
- -- Відправити отримане повідомлення на наступний рівень мережі
- sendToNextLevel(message, senderID)
- end
- end
- -- Початок виконання програми
- receiveAndForward()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement