Advertisement
veeir

Untitled

Apr 21st, 2024
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. -- Програма для маршрутизаторів
  2. local function getAddressComponents(address)
  3. -- Розділити адресу на компоненти
  4. local components = {}
  5. for component in string.gmatch(address, "[^%.]+") do
  6. table.insert(components, tonumber(component))
  7. end
  8. return components
  9. end
  10.  
  11. local function sendToNextLevel(message, receiverAddress)
  12. local components = getAddressComponents(receiverAddress)
  13. local clientID = components[1]
  14. local city = components[2]
  15. local cityGroup = components[3]
  16.  
  17. -- Перевірити, чи це клієнт в поточному маршрутизаторі
  18. if city == 1 and cityGroup == 1 then
  19. -- Це клієнт в поточному маршрутизаторі, обробити повідомлення
  20. print("Повідомлення від клієнта " .. clientID .. ": " .. message)
  21. else
  22. -- Це не клієнт в поточному маршрутизаторі, відправити повідомлення до наступного рівня мережі
  23. local nextRouterAddress = "hms." .. cityGroup .. "." .. city .. "." .. clientID
  24. rednet.send(nextRouterAddress, message)
  25. end
  26. end
  27.  
  28. local function receiveAndForward()
  29. while true do
  30. local senderID, message, distance = rednet.receive()
  31. -- Відправити отримане повідомлення на наступний рівень мережі
  32. sendToNextLevel(message, senderID)
  33. end
  34. end
  35.  
  36. -- Початок виконання програми
  37. receiveAndForward()
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement